

<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
  <meta charset="utf-8">
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  
  <title>Images &mdash; LVGL  documentation</title>
  

  
  <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
  <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
  <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" />
  <link rel="stylesheet" href="../_static/css/fontawesome.min.css" type="text/css" />

  
  
    <link rel="shortcut icon" href="../_static/favicon.png"/>
  
  
  

  
  <!--[if lt IE 9]>
    <script src="../_static/js/html5shiv.min.js"></script>
  <![endif]-->
  
    
      <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
        <script src="../_static/jquery.js"></script>
        <script src="../_static/underscore.js"></script>
        <script src="../_static/doctools.js"></script>
    
    <script type="text/javascript" src="../_static/js/theme.js"></script>

    
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="File system" href="file-system.html" />
    <link rel="prev" title="Fonts" href="font.html" />
 
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-78811084-3"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

	gtag('config', 'UA-78811084-3', { 'anonymize_ip': true });
</script>

</head>

<body class="wy-body-for-nav">

   
  <div class="wy-grid-for-nav">
    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search" >
          

          
            <a href="../index.html">
          

          
            
            <img src="../_static/logo_lvgl.png" class="logo" alt="Logo"/>
          
          </a>

          
            
            
              <div class="version">
                v7.11.0-dev
              </div>
            
          

          
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>

          
        </div>

        
        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
          
            
            
              
            
            
              <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../intro/index.html">Introduction</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../intro/index.html#key-features">Key features</a></li>
<li class="toctree-l2"><a class="reference internal" href="../intro/index.html#requirements">Requirements</a></li>
<li class="toctree-l2"><a class="reference internal" href="../intro/index.html#license">License</a></li>
<li class="toctree-l2"><a class="reference internal" href="../intro/index.html#repository-layout">Repository layout</a></li>
<li class="toctree-l2"><a class="reference internal" href="../intro/index.html#release-policy">Release policy</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#branches">Branches</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#release-cycle">Release cycle</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#tags">Tags</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#changelog">Changelog</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#side-projects">Side projects</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#version-support">Version support</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../intro/index.html#faq">FAQ</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#where-can-i-ask-questions">Where can I ask questions?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#is-my-mcu-hardware-supported">Is my MCU/hardware supported?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#is-my-display-supported">Is my display supported?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#nothing-happens-my-display-driver-is-not-called-what-have-i-missed">Nothing happens, my display driver is not called. What have I missed?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#why-the-display-driver-is-called-only-once-only-the-upper-part-of-the-display-is-refreshed">Why the display driver is called only once? Only the upper part of the display is refreshed.</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#why-i-see-only-garbage-on-the-screen">Why I see only garbage on the screen?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#why-i-see-non-sense-colors-on-the-screen">Why I see non-sense colors on the screen?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#how-to-speed-up-my-ui">How to speed up my UI?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#how-to-reduce-flash-rom-usage">How to reduce flash/ROM usage?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#how-to-reduce-the-ram-usage">How to reduce the RAM usage</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#how-to-work-with-an-operating-system">How to work with an operating system?</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../get-started/index.html">Get started</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../get-started/quick-overview.html">Quick overview</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../get-started/quick-overview.html#get-started-in-a-simulator">Get started in a simulator</a></li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/quick-overview.html#add-lvgl-into-your-project">Add LVGL into your project</a></li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/quick-overview.html#learn-the-basics">Learn the basics</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/quick-overview.html#widgets">Widgets</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/quick-overview.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/quick-overview.html#parts">Parts</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/quick-overview.html#states">States</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/quick-overview.html#styles">Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/quick-overview.html#themes">Themes</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/quick-overview.html#examples">Examples</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/quick-overview.html#button-with-label">Button with label</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/quick-overview.html#styling-buttons">Styling buttons</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/quick-overview.html#slider-and-alignment">Slider and alignment</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/quick-overview.html#micropython">Micropython</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../get-started/pc-simulator.html">Simulator on PC</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../get-started/pc-simulator.html#select-an-ide">Select an IDE</a></li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/pc-simulator.html#set-up-eclipse-cdt">Set-up Eclipse CDT</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/pc-simulator.html#install-eclipse-cdt">Install Eclipse CDT</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/pc-simulator.html#install-sdl-2">Install SDL 2</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/pc-simulator.html#pre-configured-project">Pre-configured project</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/pc-simulator.html#add-the-pre-configured-project-to-eclipse-cdt">Add the pre-configured project to Eclipse CDT</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/pc-simulator.html#compile-and-run">Compile and Run</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../get-started/stm32.html">STM32</a></li>
<li class="toctree-l2"><a class="reference internal" href="../get-started/nxp.html">NXP</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../get-started/nxp.html#creating-new-project-with-lvgl">Creating new project with LVGL</a></li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/nxp.html#adding-hw-acceleration-for-nxp-imx-rt-platforms-using-pxp-pixel-pipeline-engine-for-existing-projects">Adding HW acceleration for NXP iMX RT platforms using PXP (PiXel Pipeline) engine for existing projects</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nxp.html#features-supported">Features supported:</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nxp.html#basic-configuration">Basic configuration:</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nxp.html#basic-initialization">Basic initialization:</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nxp.html#project-setup">Project setup:</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nxp.html#advanced-configuration">Advanced configuration:</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../get-started/espressif.html">Espressif (ESP32)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../get-started/espressif.html#get-the-lvgl-demo-project-for-esp32">Get the LVGL demo project for ESP32</a></li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/espressif.html#use-lvgl-in-your-esp32-project">Use LVGL in your ESP32 project</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/espressif.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/espressif.html#get-lvgl">Get LVGL</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/espressif.html#use-lvgl-esp32-drivers-in-your-project">Use lvgl_esp32_drivers in your project</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/espressif.html#support-for-esp32-s2">Support for ESP32-S2</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../get-started/arduino.html">Arduino</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../get-started/arduino.html#get-the-lvgl-ardunio-library">Get the LVGL Ardunio library</a></li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/arduino.html#set-up-drivers">Set up drivers</a></li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/arduino.html#configure-lvgl">Configure LVGL</a></li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/arduino.html#configure-the-examples">Configure the examples</a></li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/arduino.html#initialize-lvgl-and-run-an-example">Initialize LVGL and run an example</a></li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/arduino.html#debugging-and-logging">Debugging and logging</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../get-started/micropython.html">Micropython</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../get-started/micropython.html#what-is-micropython">What is Micropython?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/micropython.html#highlights-of-micropython">Highlights of Micropython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/micropython.html#why-micropython-lvgl">Why Micropython + LVGL?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/micropython.html#here-are-some-advantages-of-using-lvgl-in-micropython">Here are some advantages of using LVGL in Micropython:</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/micropython.html#micropython-lvgl-could-be-used-for">Micropython + LVGL could be used for:</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/micropython.html#so-what-does-it-look-like">So what does it look like?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/micropython.html#a-simple-example">A simple example</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/micropython.html#how-can-i-use-it">How can I use it?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/micropython.html#online-simulator">Online Simulator</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/micropython.html#pc-simulator">PC Simulator</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/micropython.html#embedded-platform">Embedded platform</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/micropython.html#where-can-i-find-more-information">Where can I find more information?</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../get-started/nuttx.html">NuttX RTOS</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../get-started/nuttx.html#what-is-nuttx">What is NuttX?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nuttx.html#highlights-of-nuttx">Highlights of NuttX</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/nuttx.html#why-nuttx-lvgl">Why NuttX + LVGL?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nuttx.html#here-are-some-advantages-of-using-lvgl-in-nuttx">Here are some advantages of using LVGL in NuttX</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nuttx.html#nuttx-lvgl-could-be-used-for">NuttX + LVGL could be used for</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/nuttx.html#how-to-get-started-with-nuttx-and-lvgl">How to get started with NuttX and LVGL?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nuttx.html#first-you-need-to-install-the-pre-requisite-on-your-system">First you need to install the pre-requisite on your system</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nuttx.html#now-let-s-to-create-a-workspace-to-save-our-files">Now let's to create a workspace to save our files</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nuttx.html#clone-the-nuttx-and-apps-repositories">Clone the NuttX and Apps repositories:</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nuttx.html#configure-nuttx-to-use-the-stm32f429i-disco-board-and-the-lvgl-demo">Configure NuttX to use the stm32f429i-disco board and the LVGL Demo</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nuttx.html#flashing-the-firmware-in-the-board-using-openocd">Flashing the firmware in the board using OpenOCD:</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/nuttx.html#where-can-i-find-more-information">Where can I find more information?</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../porting/index.html">Porting</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../porting/sys.html">System overview</a></li>
<li class="toctree-l2"><a class="reference internal" href="../porting/project.html">Set-up a project</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../porting/project.html#get-the-library">Get the library</a></li>
<li class="toctree-l3"><a class="reference internal" href="../porting/project.html#configuration-file">Configuration file</a></li>
<li class="toctree-l3"><a class="reference internal" href="../porting/project.html#initialization">Initialization</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../porting/display.html">Display interface</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../porting/display.html#display-buffer">Display buffer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../porting/display.html#display-driver">Display driver</a></li>
<li class="toctree-l3"><a class="reference internal" href="../porting/display.html#rotation">Rotation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../porting/display.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../porting/indev.html">Input device interface</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../porting/indev.html#types-of-input-devices">Types of input devices</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../porting/indev.html#touchpad-mouse-or-any-pointer">Touchpad, mouse or any pointer</a></li>
<li class="toctree-l4"><a class="reference internal" href="../porting/indev.html#keypad-or-keyboard">Keypad or keyboard</a></li>
<li class="toctree-l4"><a class="reference internal" href="../porting/indev.html#encoder">Encoder</a></li>
<li class="toctree-l4"><a class="reference internal" href="../porting/indev.html#button">Button</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../porting/indev.html#other-features">Other features</a></li>
<li class="toctree-l3"><a class="reference internal" href="../porting/indev.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../porting/tick.html">Tick interface</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../porting/tick.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../porting/task-handler.html">Task Handler</a></li>
<li class="toctree-l2"><a class="reference internal" href="../porting/sleep.html">Sleep management</a></li>
<li class="toctree-l2"><a class="reference internal" href="../porting/os.html">Operating system and interrupts</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../porting/os.html#tasks-and-threads">Tasks and threads</a></li>
<li class="toctree-l3"><a class="reference internal" href="../porting/os.html#interrupts">Interrupts</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../porting/log.html">Logging</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../porting/log.html#log-level">Log level</a></li>
<li class="toctree-l3"><a class="reference internal" href="../porting/log.html#logging-with-printf">Logging with printf</a></li>
<li class="toctree-l3"><a class="reference internal" href="../porting/log.html#custom-log-function">Custom log function</a></li>
<li class="toctree-l3"><a class="reference internal" href="../porting/log.html#add-logs">Add logs</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Overview</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="object.html">Objects</a><ul>
<li class="toctree-l3"><a class="reference internal" href="object.html#attributes">Attributes</a><ul>
<li class="toctree-l4"><a class="reference internal" href="object.html#basic-attributes">Basic attributes</a></li>
<li class="toctree-l4"><a class="reference internal" href="object.html#specific-attributes">Specific attributes</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="object.html#working-mechanisms">Working mechanisms</a><ul>
<li class="toctree-l4"><a class="reference internal" href="object.html#parent-child-structure">Parent-child structure</a></li>
<li class="toctree-l4"><a class="reference internal" href="object.html#moving-together">Moving together</a></li>
<li class="toctree-l4"><a class="reference internal" href="object.html#visibility-only-on-the-parent">Visibility only on the parent</a></li>
<li class="toctree-l4"><a class="reference internal" href="object.html#create-delete-objects">Create - delete objects</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="object.html#screens">Screens</a><ul>
<li class="toctree-l4"><a class="reference internal" href="object.html#create-screens">Create screens</a></li>
<li class="toctree-l4"><a class="reference internal" href="object.html#get-the-active-screen">Get the active screen</a></li>
<li class="toctree-l4"><a class="reference internal" href="object.html#load-screens">Load screens</a></li>
<li class="toctree-l4"><a class="reference internal" href="object.html#handling-multiple-displays">Handling multiple displays</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="object.html#parts">Parts</a></li>
<li class="toctree-l3"><a class="reference internal" href="object.html#states">States</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="layer.html">Layers</a><ul>
<li class="toctree-l3"><a class="reference internal" href="layer.html#order-of-creation">Order of creation</a></li>
<li class="toctree-l3"><a class="reference internal" href="layer.html#bring-to-the-foreground">Bring to the foreground</a></li>
<li class="toctree-l3"><a class="reference internal" href="layer.html#top-and-sys-layers">Top and sys layers</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="event.html">Events</a><ul>
<li class="toctree-l3"><a class="reference internal" href="event.html#event-types">Event types</a><ul>
<li class="toctree-l4"><a class="reference internal" href="event.html#generic-events">Generic events</a></li>
<li class="toctree-l4"><a class="reference internal" href="event.html#special-events">Special events</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="event.html#custom-data">Custom data</a></li>
<li class="toctree-l3"><a class="reference internal" href="event.html#send-events-manually">Send events manually</a><ul>
<li class="toctree-l4"><a class="reference internal" href="event.html#arbitrary-events">Arbitrary events</a></li>
<li class="toctree-l4"><a class="reference internal" href="event.html#refresh-event">Refresh event</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="style.html">Styles</a><ul>
<li class="toctree-l3"><a class="reference internal" href="style.html#states">States</a></li>
<li class="toctree-l3"><a class="reference internal" href="style.html#cascading-styles">Cascading styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="style.html#inheritance">Inheritance</a></li>
<li class="toctree-l3"><a class="reference internal" href="style.html#parts">Parts</a></li>
<li class="toctree-l3"><a class="reference internal" href="style.html#initialize-styles-and-set-get-properties">Initialize styles and set/get properties</a></li>
<li class="toctree-l3"><a class="reference internal" href="style.html#managing-style-list">Managing style list</a></li>
<li class="toctree-l3"><a class="reference internal" href="style.html#local-styles">Local styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="style.html#transitions">Transitions</a></li>
<li class="toctree-l3"><a class="reference internal" href="style.html#properties">Properties</a><ul>
<li class="toctree-l4"><a class="reference internal" href="style.html#mixed-properties">Mixed properties</a></li>
<li class="toctree-l4"><a class="reference internal" href="style.html#padding-and-margin-properties">Padding and margin properties</a></li>
<li class="toctree-l4"><a class="reference internal" href="style.html#background-properties">Background properties</a></li>
<li class="toctree-l4"><a class="reference internal" href="style.html#border-properties">Border properties</a></li>
<li class="toctree-l4"><a class="reference internal" href="style.html#outline-properties">Outline properties</a></li>
<li class="toctree-l4"><a class="reference internal" href="style.html#shadow-properties">Shadow properties</a></li>
<li class="toctree-l4"><a class="reference internal" href="style.html#pattern-properties">Pattern properties</a></li>
<li class="toctree-l4"><a class="reference internal" href="style.html#value-properties">Value properties</a></li>
<li class="toctree-l4"><a class="reference internal" href="style.html#text-properties">Text properties</a></li>
<li class="toctree-l4"><a class="reference internal" href="style.html#line-properties">Line properties</a></li>
<li class="toctree-l4"><a class="reference internal" href="style.html#image-properties">Image properties</a></li>
<li class="toctree-l4"><a class="reference internal" href="style.html#transition-properties">Transition properties</a></li>
<li class="toctree-l4"><a class="reference internal" href="style.html#scale-properties">Scale properties</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="style.html#themes">Themes</a><ul>
<li class="toctree-l4"><a class="reference internal" href="style.html#extending-themes">Extending themes</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="style.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="style.html#styling-a-button">Styling a button</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="style.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="indev.html">Input devices</a><ul>
<li class="toctree-l3"><a class="reference internal" href="indev.html#pointers">Pointers</a></li>
<li class="toctree-l3"><a class="reference internal" href="indev.html#keypad-and-encoder">Keypad and encoder</a><ul>
<li class="toctree-l4"><a class="reference internal" href="indev.html#groups">Groups</a></li>
<li class="toctree-l4"><a class="reference internal" href="indev.html#styling">Styling</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="indev.html#api">API</a><ul>
<li class="toctree-l4"><a class="reference internal" href="indev.html#input-device">Input device</a></li>
<li class="toctree-l4"><a class="reference internal" href="indev.html#id1">Groups</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="display.html">Displays</a><ul>
<li class="toctree-l3"><a class="reference internal" href="display.html#multiple-display-support">Multiple display support</a><ul>
<li class="toctree-l4"><a class="reference internal" href="display.html#using-only-one-display">Using only one display</a></li>
<li class="toctree-l4"><a class="reference internal" href="display.html#mirror-display">Mirror display</a></li>
<li class="toctree-l4"><a class="reference internal" href="display.html#split-image">Split image</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="display.html#screens">Screens</a><ul>
<li class="toctree-l4"><a class="reference internal" href="display.html#transparent-screens">Transparent screens</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="display.html#features-of-displays">Features of displays</a><ul>
<li class="toctree-l4"><a class="reference internal" href="display.html#inactivity">Inactivity</a></li>
<li class="toctree-l4"><a class="reference internal" href="display.html#background">Background</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="display.html#colors">Colors</a><ul>
<li class="toctree-l4"><a class="reference internal" href="display.html#convert-color">Convert color</a></li>
<li class="toctree-l4"><a class="reference internal" href="display.html#swap-16-colors">Swap 16 colors</a></li>
<li class="toctree-l4"><a class="reference internal" href="display.html#create-and-mix-colors">Create and mix colors</a></li>
<li class="toctree-l4"><a class="reference internal" href="display.html#opacity">Opacity</a></li>
<li class="toctree-l4"><a class="reference internal" href="display.html#built-in-colors">Built-in colors</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="display.html#api">API</a><ul>
<li class="toctree-l4"><a class="reference internal" href="display.html#display">Display</a></li>
<li class="toctree-l4"><a class="reference internal" href="display.html#id1">Colors</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="font.html">Fonts</a><ul>
<li class="toctree-l3"><a class="reference internal" href="font.html#unicode-support">Unicode support</a></li>
<li class="toctree-l3"><a class="reference internal" href="font.html#built-in-fonts">Built-in fonts</a><ul>
<li class="toctree-l4"><a class="reference internal" href="font.html#normal-fonts">Normal fonts</a></li>
<li class="toctree-l4"><a class="reference internal" href="font.html#special-fonts">Special fonts</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="font.html#special-features">Special features</a><ul>
<li class="toctree-l4"><a class="reference internal" href="font.html#bidirectional-support">Bidirectional support</a></li>
<li class="toctree-l4"><a class="reference internal" href="font.html#arabic-and-persian-support">Arabic and Persian support</a></li>
<li class="toctree-l4"><a class="reference internal" href="font.html#subpixel-rendering">Subpixel rendering</a></li>
<li class="toctree-l4"><a class="reference internal" href="font.html#compress-fonts">Compress fonts</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="font.html#add-new-font">Add new font</a></li>
<li class="toctree-l3"><a class="reference internal" href="font.html#add-new-symbols">Add new symbols</a></li>
<li class="toctree-l3"><a class="reference internal" href="font.html#load-font-in-run-time">Load font in run-time</a></li>
<li class="toctree-l3"><a class="reference internal" href="font.html#add-a-new-font-engine">Add a new font engine</a></li>
</ul>
</li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Images</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#store-images">Store images</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#variables">Variables</a></li>
<li class="toctree-l4"><a class="reference internal" href="#files">Files</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#color-formats">Color formats</a></li>
<li class="toctree-l3"><a class="reference internal" href="#add-and-use-images">Add and use images</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#online-converter">Online converter</a></li>
<li class="toctree-l4"><a class="reference internal" href="#manually-create-an-image">Manually create an image</a></li>
<li class="toctree-l4"><a class="reference internal" href="#use-images">Use images</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#image-decoder">Image decoder</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#custom-image-formats">Custom image formats</a></li>
<li class="toctree-l4"><a class="reference internal" href="#register-an-image-decoder">Register an image decoder</a></li>
<li class="toctree-l4"><a class="reference internal" href="#manually-use-an-image-decoder">Manually use an image decoder</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#image-caching">Image caching</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#cache-size">Cache size</a></li>
<li class="toctree-l4"><a class="reference internal" href="#value-of-images">Value of images</a></li>
<li class="toctree-l4"><a class="reference internal" href="#memory-usage">Memory usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="#clean-the-cache">Clean the cache</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#api">API</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#id1">Image decoder</a></li>
<li class="toctree-l4"><a class="reference internal" href="#image-cache">Image cache</a></li>
<li class="toctree-l4"><a class="reference internal" href="#image-buffer">Image buffer</a></li>
<li class="toctree-l4"><a class="reference internal" href="#image-draw">Image draw</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="file-system.html">File system</a><ul>
<li class="toctree-l3"><a class="reference internal" href="file-system.html#add-a-driver">Add a driver</a></li>
<li class="toctree-l3"><a class="reference internal" href="file-system.html#usage-example">Usage example</a></li>
<li class="toctree-l3"><a class="reference internal" href="file-system.html#use-drivers-for-images">Use drivers for images</a></li>
<li class="toctree-l3"><a class="reference internal" href="file-system.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="animation.html">Animations</a><ul>
<li class="toctree-l3"><a class="reference internal" href="animation.html#create-an-animation">Create an animation</a></li>
<li class="toctree-l3"><a class="reference internal" href="animation.html#animation-path">Animation path</a></li>
<li class="toctree-l3"><a class="reference internal" href="animation.html#speed-vs-time">Speed vs time</a></li>
<li class="toctree-l3"><a class="reference internal" href="animation.html#delete-animations">Delete animations</a></li>
<li class="toctree-l3"><a class="reference internal" href="animation.html#api">API</a><ul>
<li class="toctree-l4"><a class="reference internal" href="animation.html#input-device">Input device</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="task.html">Tasks</a><ul>
<li class="toctree-l3"><a class="reference internal" href="task.html#create-a-task">Create a task</a></li>
<li class="toctree-l3"><a class="reference internal" href="task.html#ready-and-reset">Ready and Reset</a></li>
<li class="toctree-l3"><a class="reference internal" href="task.html#set-parameters">Set parameters</a></li>
<li class="toctree-l3"><a class="reference internal" href="task.html#one-shot-tasks">One-shot tasks</a></li>
<li class="toctree-l3"><a class="reference internal" href="task.html#measure-idle-time">Measure idle time</a></li>
<li class="toctree-l3"><a class="reference internal" href="task.html#asynchronous-calls">Asynchronous calls</a></li>
<li class="toctree-l3"><a class="reference internal" href="task.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="drawing.html">Drawing</a><ul>
<li class="toctree-l3"><a class="reference internal" href="drawing.html#buffering-types">Buffering types</a></li>
<li class="toctree-l3"><a class="reference internal" href="drawing.html#mechanism-of-screen-refreshing">Mechanism of screen refreshing</a></li>
<li class="toctree-l3"><a class="reference internal" href="drawing.html#masking">Masking</a><ul>
<li class="toctree-l4"><a class="reference internal" href="drawing.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="drawing.html#micropython">MicroPython</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../widgets/index.html">Widgets</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../widgets/obj.html">Base object (lv_obj)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/obj.html#overview">Overview</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#coordinates">Coordinates</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#parents-and-children">Parents and children</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#screens">Screens</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#layers">Layers</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#events">Events</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/obj.html#parts">Parts</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#states">States</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#style">Style</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#attributes">Attributes</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#protect">Protect</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#groups">Groups</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#extended-click-area">Extended click area</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/obj.html#id1">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/obj.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/obj.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/obj.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/arc.html">Arc (lv_arc)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/arc.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/arc.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/arc.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/arc.html#angles">Angles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/arc.html#rotation">Rotation</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/arc.html#range-and-values">Range and values</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/arc.html#type">Type</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/arc.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/arc.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/arc.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/arc.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/arc.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/arc.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/bar.html">Bar (lv_bar)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/bar.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/bar.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/bar.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/bar.html#value-and-range">Value and range</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/bar.html#modes">Modes</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/bar.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/bar.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/bar.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/bar.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/bar.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/bar.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/btn.html">Button (lv_btn)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/btn.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/btn.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/btn.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/btn.html#states">States</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/btn.html#checkable">Checkable</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/btn.html#layout-and-fit">Layout and Fit</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/btn.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/btn.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/btn.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/btn.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/btn.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/btn.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/btnmatrix.html">Button matrix (lv_btnmatrix)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/btnmatrix.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/btnmatrix.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/btnmatrix.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/btnmatrix.html#button-s-text">Button's text</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/btnmatrix.html#control-buttons">Control buttons</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/btnmatrix.html#one-check">One check</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/btnmatrix.html#recolor">Recolor</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/btnmatrix.html#aligning-the-button-s-text">Aligning the button's text</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/btnmatrix.html#notes">Notes</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/btnmatrix.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/btnmatrix.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/btnmatrix.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/btnmatrix.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/btnmatrix.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/btnmatrix.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/calendar.html">Calendar (lv_calendar)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/calendar.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/calendar.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/calendar.html#usage">Usage</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/calendar.html#id1">Overview</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/calendar.html#current-date">Current date</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/calendar.html#shown-date">Shown date</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/calendar.html#highlighted-days">Highlighted days</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/calendar.html#name-of-the-days">Name of the days</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/calendar.html#name-of-the-months">Name of the months</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/calendar.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/calendar.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/calendar.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/calendar.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/calendar.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/calendar.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/canvas.html">Canvas (lv_canvas)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/canvas.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/canvas.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/canvas.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/canvas.html#buffer">Buffer</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/canvas.html#palette">Palette</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/canvas.html#drawing">Drawing</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/canvas.html#transformations">Transformations</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/canvas.html#blur">Blur</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/canvas.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/canvas.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/canvas.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/canvas.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/canvas.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/canvas.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/checkbox.html">Checkbox (lv_cb)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/checkbox.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/checkbox.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/checkbox.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/checkbox.html#text">Text</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/checkbox.html#check-uncheck">Check/Uncheck</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/checkbox.html#disabled">Disabled</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/checkbox.html#get-set-checkbox-state">Get/Set Checkbox State</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/checkbox.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/checkbox.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/checkbox.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/checkbox.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/checkbox.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/checkbox.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/chart.html">Chart (lv_chart)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/chart.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/chart.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/chart.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/chart.html#data-series">Data series</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/chart.html#series-type">Series' type</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/chart.html#modify-the-data">Modify the data</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/chart.html#override-default-start-point-for-series">Override default start point for series</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/chart.html#set-an-external-data-source">Set an external data source</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/chart.html#get-current-chart-information">Get current chart information</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/chart.html#update-modes">Update modes</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/chart.html#number-of-points">Number of points</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/chart.html#vertical-range">Vertical range</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/chart.html#division-lines">Division lines</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/chart.html#tick-marks-and-labels">Tick marks and labels</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/chart.html#cursor">Cursor</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/chart.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/chart.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/chart.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/chart.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/chart.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/chart.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/cont.html">Container (lv_cont)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/cont.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/cont.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/cont.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/cont.html#layout">Layout</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/cont.html#autofit">Autofit</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/cont.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/cont.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/cont.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/cont.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/cont.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/cont.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/cpicker.html">Color picker (lv_cpicker)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/cpicker.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/cpicker.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/cpicker.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/cpicker.html#type">Type</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/cpicker.html#set-color">Set color</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/cpicker.html#color-mode">Color mode</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/cpicker.html#knob-color">Knob color</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/cpicker.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/cpicker.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/cpicker.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/cpicker.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/cpicker.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/cpicker.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/dropdown.html">Drop-down list (lv_dropdown)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/dropdown.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/dropdown.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/dropdown.html#usage">Usage</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/dropdown.html#id1">Overview</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/dropdown.html#set-options">Set options</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/dropdown.html#get-selected-option">Get selected option</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/dropdown.html#direction">Direction</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/dropdown.html#symbol">Symbol</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/dropdown.html#maximum-height">Maximum height</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/dropdown.html#show-selected">Show selected</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/dropdown.html#animation-time">Animation time</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/dropdown.html#manually-open-close">Manually open/close</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/dropdown.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/dropdown.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/dropdown.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/dropdown.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/dropdown.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/dropdown.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/gauge.html">Gauge (lv_gauge)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/gauge.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/gauge.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/gauge.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/gauge.html#set-value-and-needles">Set value and needles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/gauge.html#scale">Scale</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/gauge.html#range">Range</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/gauge.html#needle-image">Needle image</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/gauge.html#critical-value">Critical value</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/gauge.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/gauge.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/gauge.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/gauge.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/gauge.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/gauge.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/img.html">Image (lv_img)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/img.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/img.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/img.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/img.html#image-source">Image source</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/img.html#label-as-an-image">Label as an image</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/img.html#transparency">Transparency</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/img.html#palette-and-alpha-index">Palette and Alpha index</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/img.html#recolor">Recolor</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/img.html#auto-size">Auto-size</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/img.html#mosaic">Mosaic</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/img.html#offset">Offset</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/img.html#transformations">Transformations</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/img.html#rotate">Rotate</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/img.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/img.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/img.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/img.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/img.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/img.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/imgbtn.html">Image button (lv_imgbtn)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/imgbtn.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/imgbtn.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/imgbtn.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/imgbtn.html#image-sources">Image sources</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/imgbtn.html#button-features">Button features</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/imgbtn.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/imgbtn.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/imgbtn.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/imgbtn.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/imgbtn.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/imgbtn.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/keyboard.html">Keyboard (lv_keyboard)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/keyboard.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/keyboard.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/keyboard.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/keyboard.html#modes">Modes</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/keyboard.html#assign-text-area">Assign Text area</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/keyboard.html#new-keymap">New Keymap</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/keyboard.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/keyboard.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/keyboard.html#examples">Examples</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/keyboard.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/keyboard.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/keyboard.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/label.html">Label (lv_label)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/label.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/label.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/label.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/label.html#set-text">Set text</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/label.html#line-break">Line break</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/label.html#long-modes">Long modes</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/label.html#text-align">Text align</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/label.html#text-recolor">Text recolor</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/label.html#very-long-texts">Very long texts</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/label.html#symbols">Symbols</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/label.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/label.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/label.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/label.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/label.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/label.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/led.html">LED (lv_led)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/led.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/led.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/led.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/led.html#brightness">Brightness</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/led.html#toggle">Toggle</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/led.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/led.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/led.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/led.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/led.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/led.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/line.html">Line (lv_line)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/line.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/line.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/line.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/line.html#set-points">Set points</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/line.html#auto-size">Auto-size</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/line.html#invert-y">Invert y</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/line.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/line.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/line.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/line.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/line.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/line.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/list.html">List (lv_list)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/list.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/list.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/list.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/list.html#add-buttons">Add buttons</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/list.html#delete-buttons">Delete buttons</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/list.html#manual-navigation">Manual navigation</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/list.html#layout">Layout</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/list.html#edge-flash">Edge flash</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/list.html#scroll-propagation">Scroll propagation</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/list.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/list.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/list.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/list.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/list.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/list.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/linemeter.html">Line meter (lv_lmeter)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/linemeter.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/linemeter.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/linemeter.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/linemeter.html#set-value">Set value</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/linemeter.html#range-and-angles">Range and Angles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/linemeter.html#angle-offset">Angle offset</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/linemeter.html#mirror">Mirror</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/linemeter.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/linemeter.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/linemeter.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/linemeter.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/linemeter.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/linemeter.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/msgbox.html">Message box (lv_msgbox)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/msgbox.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/msgbox.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/msgbox.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/msgbox.html#set-text">Set text</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/msgbox.html#add-buttons">Add buttons</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/msgbox.html#auto-close">Auto-close</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/msgbox.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/msgbox.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/msgbox.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/msgbox.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/msgbox.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/objmask.html">Object mask (lv_objmask)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/objmask.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/objmask.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/objmask.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/objmask.html#adding-mask">Adding mask</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/objmask.html#update-mask">Update mask</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/objmask.html#remove-mask">Remove mask</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/objmask.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/objmask.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/objmask.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/objmask.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/objmask.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/objmask.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/page.html">Page (lv_page)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/page.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/page.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/page.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/page.html#scrollbars">Scrollbars</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/page.html#glue-object">Glue object</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/page.html#focus-object">Focus object</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/page.html#manual-navigation">Manual navigation</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/page.html#edge-flash">Edge flash</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/page.html#scroll-propagation">Scroll propagation</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/page.html#clean-the-page">Clean the page</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/page.html#scrollable-api">Scrollable API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/page.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/page.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/page.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/page.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/page.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/roller.html">Roller (lv_roller)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/roller.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/roller.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/roller.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/roller.html#set-options">Set options</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/roller.html#get-selected-option">Get selected option</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/roller.html#align-the-options">Align the options</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/roller.html#visible-rows">Visible rows</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/roller.html#animation-time">Animation time</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/roller.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/roller.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/roller.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/roller.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/roller.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/roller.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/slider.html">Slider (lv_slider)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/slider.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/slider.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/slider.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/slider.html#value-and-range">Value and range</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/slider.html#symmetrical-and-range">Symmetrical and Range</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/slider.html#knob-only-mode">Knob-only mode</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/slider.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/slider.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/slider.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/slider.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/slider.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/slider.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/spinbox.html">Spinbox (lv_spinbox)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/spinbox.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/spinbox.html#parts-and-styles">Parts and Styles</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/spinbox.html#set-format">Set format</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/spinbox.html#value-and-ranges">Value and ranges</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/spinbox.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/spinbox.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/spinbox.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/spinbox.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/spinbox.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/spinbox.html#api">API</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/spinbox.html#id1">Example</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/spinner.html">Spinner (lv_spinner)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/spinner.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/spinner.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/spinner.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/spinner.html#arc-length">Arc length</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/spinner.html#spinning-speed">Spinning speed</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/spinner.html#spin-types">Spin types</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/spinner.html#spin-direction">Spin direction</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/spinner.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/spinner.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/spinner.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/spinner.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/spinner.html#id1">MicroPython</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/spinner.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/spinner.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/switch.html">Switch (lv_switch)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/switch.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/switch.html#parts-and-styles">Parts and Styles</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/switch.html#change-state">Change state</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/switch.html#animation-time">Animation time</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/switch.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/switch.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/switch.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/switch.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/switch.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/switch.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/table.html">Table (lv_table)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/table.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/table.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/table.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/table.html#rows-and-columns">Rows and Columns</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/table.html#width-and-height">Width and Height</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/table.html#set-cell-value">Set cell value</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/table.html#align">Align</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/table.html#cell-type">Cell type</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/table.html#merge-cells">Merge cells</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/table.html#crop-text">Crop text</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/table.html#scroll">Scroll</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/table.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/table.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/table.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/table.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/table.html#id1">MicroPython</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/table.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/table.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/tabview.html">Tabview (lv_tabview)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/tabview.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/tabview.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/tabview.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tabview.html#adding-tab">Adding tab</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tabview.html#change-tab">Change tab</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tabview.html#change-tab-s-name">Change tab's name</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tabview.html#tab-button-s-position">Tab button's position</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tabview.html#animation-time">Animation time</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tabview.html#scroll-propagation">Scroll propagation</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/tabview.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/tabview.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/tabview.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tabview.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tabview.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/tabview.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/textarea.html">Text area (lv_textarea)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/textarea.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/textarea.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/textarea.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#add-text">Add text</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#placeholder">Placeholder</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#delete-character">Delete character</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#move-the-cursor">Move the cursor</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#hide-the-cursor">Hide the cursor</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#cursor-blink-time">Cursor blink time</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#one-line-mode">One line mode</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#password-mode">Password mode</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#text-align">Text align</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#accepted-characters">Accepted characters</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#max-text-length">Max text length</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#very-long-texts">Very long texts</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#select-text">Select text</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#scrollbars">Scrollbars</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#scroll-propagation">Scroll propagation</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#edge-flash">Edge flash</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/textarea.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/textarea.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/textarea.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/textarea.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/tileview.html">Tile view (lv_tileview)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/tileview.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/tileview.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/tileview.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tileview.html#valid-positions">Valid positions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tileview.html#set-tile">Set tile</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tileview.html#add-element">Add element</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tileview.html#scroll-propagation">Scroll propagation</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tileview.html#animation-time">Animation time</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tileview.html#edge-flash">Edge flash</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/tileview.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/tileview.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/tileview.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tileview.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tileview.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/tileview.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/win.html">Window (lv_win)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/win.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/win.html#parts-and-styles">Parts and Styles</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/win.html#title">Title</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/win.html#control-buttons">Control buttons</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/win.html#scrollbars">Scrollbars</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/win.html#manual-scroll-and-focus">Manual scroll and focus</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/win.html#layout">Layout</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/win.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/win.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/win.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/win.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/win.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/win.html#api">API</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../contributing/index.html">Contributing</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../contributing/index.html#introduction">Introduction</a></li>
<li class="toctree-l2"><a class="reference internal" href="../contributing/index.html#pull-request">Pull request</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#from-github">From GitHub</a></li>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#from-command-line">From command line</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../contributing/index.html#developer-certification-of-origin-dco">Developer Certification of Origin (DCO)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#accepted-licenses-and-copyright-notices">Accepted licenses and copyright notices</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../contributing/index.html#your-own-work">Your own work</a></li>
<li class="toctree-l4"><a class="reference internal" href="../contributing/index.html#use-code-from-online-source">Use code from online source</a></li>
<li class="toctree-l4"><a class="reference internal" href="../contributing/index.html#use-mit-licensed-code">Use MIT licensed code</a></li>
<li class="toctree-l4"><a class="reference internal" href="../contributing/index.html#use-gpl-licensed-code">Use GPL licensed code</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../contributing/index.html#when-you-get-started-with-lvgl">When you get started with LVGL</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#give-lvgl-a-star">Give LVGL a Star</a></li>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#tell-what-you-have-achieved">Tell what you have achieved</a></li>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#write-examples">Write examples</a></li>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#improve-the-docs">Improve the docs</a></li>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#translate-the-docs">Translate the docs</a></li>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#write-a-blog-post">Write a blog post</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../contributing/index.html#when-you-already-use-lvgl">When you already use LVGL</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#give-feedback">Give feedback</a></li>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#report-bugs">Report bugs</a></li>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#send-fixes">Send fixes</a></li>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#join-the-conversations-in-the-forum">Join the conversations in the Forum</a></li>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#add-features">Add features</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../contributing/index.html#when-you-are-confident-with-lvgl">When you are confident with LVGL</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#become-a-maintainer">Become a maintainer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#move-your-project-repository-under-lvgl-organization">Move your project repository under LVGL organization</a></li>
</ul>
</li>
</ul>
</li>
</ul>

            
          
        </div>
        
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" aria-label="top navigation">
        
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="../index.html">LVGL</a>
        
      </nav>


      <div class="wy-nav-content">
        
        <div class="rst-content">
        
          

















<div role="navigation" aria-label="breadcrumbs navigation">

  <ul class="wy-breadcrumbs">
    
      <li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
        
          <li><a href="index.html">Overview</a> &raquo;</li>
        
      <li>Images</li>
    
    
      <li class="wy-breadcrumbs-aside">
        
            
            
              <!-- User defined GitHub URL -->
              <a href="https://github.com/lvgl/docs/blob/latest/overview/image.md" class="fa fa-github"> Edit on GitHub</a>
            
          
        
      </li>
    
  </ul>

  
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
            
  <div class="section" id="images">
<h1>Images<a class="headerlink" href="#images" title="Permalink to this headline">¶</a></h1>
<p>An image can be a file or variable which stores the bitmap itself and some metadata.</p>
<div class="section" id="store-images">
<h2>Store images<a class="headerlink" href="#store-images" title="Permalink to this headline">¶</a></h2>
<p>You can store images in two places</p>
<ul class="simple">
<li><p>as a variable in the internal memory (RAM or ROM)</p></li>
<li><p>as a file</p></li>
</ul>
<div class="section" id="variables">
<h3>Variables<a class="headerlink" href="#variables" title="Permalink to this headline">¶</a></h3>
<p>The images stored internally in a variable is composed mainly of an <code class="docutils literal notranslate"><span class="pre">lv_img_dsc_t</span></code> structure with the following fields:</p>
<ul class="simple">
<li><p><strong>header</strong></p>
<ul>
<li><p><em>cf</em> Color format. See <a class="reference external" href="#color-format">below</a></p></li>
<li><p><em>w</em> width in pixels (&lt;= 2048)</p></li>
<li><p><em>h</em> height in pixels (&lt;= 2048)</p></li>
<li><p><em>always zero</em> 3 bits which need to be always zero</p></li>
<li><p><em>reserved</em> reserved for future use</p></li>
</ul>
</li>
<li><p><strong>data</strong> pointer to an array where the image itself is stored</p></li>
<li><p><strong>data_size</strong> length of <code class="docutils literal notranslate"><span class="pre">data</span></code> in bytes</p></li>
</ul>
<p>These are usually stored within a project as C files. They are linked into the resulting executable like any other constant data.</p>
</div>
<div class="section" id="files">
<h3>Files<a class="headerlink" href="#files" title="Permalink to this headline">¶</a></h3>
<p>To deal with files you need to add a <em>Drive</em> to LVGL. In short, a <em>Drive</em> is a collection of functions (<em>open</em>, <em>read</em>, <em>close</em>, etc.) registered in LVGL to make file operations.
You can add an interface to a standard file system (FAT32 on SD card) or you create your simple file system to read data from an SPI Flash memory.
In every case, a <em>Drive</em> is just an abstraction to read and/or write data to a memory.
See the <a class="reference internal" href="file-system.html"><span class="doc">File system</span></a> section to learn more.</p>
<p>Images stored as files are not linked into the resulting executable, and must be read to RAM before being drawn. As a result, they are not as resource-friendly as variable images. However, they are easier to replace without needing to recompile the main program.</p>
</div>
</div>
<div class="section" id="color-formats">
<h2>Color formats<a class="headerlink" href="#color-formats" title="Permalink to this headline">¶</a></h2>
<p>Various built-in color formats are supported:</p>
<ul class="simple">
<li><p><strong>LV_IMG_CF_TRUE_COLOR</strong> Simply stores the RGB colors (in whatever color depth LVGL is configured for).</p></li>
<li><p><strong>LV_IMG_CF_TRUE_COLOR_ALPHA</strong> Like <code class="docutils literal notranslate"><span class="pre">LV_IMG_CF_TRUE_COLOR</span></code> but it also adds an alpha (transparency) byte for every pixel.</p></li>
<li><p><strong>LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED</strong> Like <code class="docutils literal notranslate"><span class="pre">LV_IMG_CF_TRUE_COLOR</span></code> but if a pixel has <code class="docutils literal notranslate"><span class="pre">LV_COLOR_TRANSP</span></code> (set in <em>lv_conf.h</em>) color the pixel will be transparent.</p></li>
<li><p><strong>LV_IMG_CF_INDEXED_1/2/4/8BIT</strong> Uses a palette with 2, 4, 16 or 256 colors and stores each pixel in 1, 2, 4 or 8 bits.</p></li>
<li><p><strong>LV_IMG_CF_ALPHA_1/2/4/8BIT</strong> <strong>Only stores the Alpha value on 1, 2, 4 or 8 bits.</strong> The pixels take the color of <code class="docutils literal notranslate"><span class="pre">style.image.color</span></code> and the set opacity. The source image has to be an alpha channel. This is ideal for bitmaps similar to fonts (where the whole image is one color but you'd like to be able to change it).</p></li>
</ul>
<p>The bytes of the <code class="docutils literal notranslate"><span class="pre">LV_IMG_CF_TRUE_COLOR</span></code> images are stored in the following order.</p>
<p>For 32-bit color depth:</p>
<ul class="simple">
<li><p>Byte 0: Blue</p></li>
<li><p>Byte 1: Green</p></li>
<li><p>Byte 2: Red</p></li>
<li><p>Byte 3: Alpha</p></li>
</ul>
<p>For 16-bit color depth:</p>
<ul class="simple">
<li><p>Byte 0: Green 3 lower bit, Blue 5 bit</p></li>
<li><p>Byte 1: Red 5 bit, Green 3 higher bit</p></li>
<li><p>Byte 2: Alpha byte (only with LV_IMG_CF_TRUE_COLOR_ALPHA)</p></li>
</ul>
<p>For 8-bit color depth:</p>
<ul class="simple">
<li><p>Byte 0: Red 3 bit, Green 3 bit, Blue 2 bit</p></li>
<li><p>Byte 2: Alpha byte (only with LV_IMG_CF_TRUE_COLOR_ALPHA)</p></li>
</ul>
<p>You can store images in a <em>Raw</em> format to indicate that, it's not a built-in color format and an external <a class="reference external" href="#image-decoder">Image decoder</a> needs to be used to decode the image.</p>
<ul class="simple">
<li><p><strong>LV_IMG_CF_RAW</strong> Indicates a basic raw image (e.g. a PNG or JPG image).</p></li>
<li><p><strong>LV_IMG_CF_RAW_ALPHA</strong> Indicates that the image has alpha and an alpha byte is added for every pixel.</p></li>
<li><p><strong>LV_IMG_CF_RAW_CHROME_KEYED</strong> Indicates that the image is chrome keyed as described in <code class="docutils literal notranslate"><span class="pre">LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED</span></code> above.</p></li>
</ul>
</div>
<div class="section" id="add-and-use-images">
<h2>Add and use images<a class="headerlink" href="#add-and-use-images" title="Permalink to this headline">¶</a></h2>
<p>You can add images to LVGL in two ways:</p>
<ul class="simple">
<li><p>using the online converter</p></li>
<li><p>manually create images</p></li>
</ul>
<div class="section" id="online-converter">
<h3>Online converter<a class="headerlink" href="#online-converter" title="Permalink to this headline">¶</a></h3>
<p>The online Image converter is available here: https://lvgl.io/tools/imageconverter</p>
<p>Adding an image to LVGL via online converter is easy.</p>
<ol class="simple">
<li><p>You need to select a <em>BMP</em>, <em>PNG</em> or <em>JPG</em> image first.</p></li>
<li><p>Give the image a name that will be used within LVGL.</p></li>
<li><p>Select the <a class="reference external" href="#color-formats">Color format</a>.</p></li>
<li><p>Select the type of image you want. Choosing a binary will generate a <code class="docutils literal notranslate"><span class="pre">.bin</span></code> file that must be stored separately and read using the <a class="reference external" href="#files">file support</a>. Choosing a variable will generate a standard C file that can be linked into your project.</p></li>
<li><p>Hit the <em>Convert</em> button. Once the conversion is finished, your browser will automatically download the resulting file.</p></li>
</ol>
<p>In the converter C arrays (variables), the bitmaps for all the color depths (1, 8, 16 or 32) are included in the C file, but only the color depth that matches <code class="docutils literal notranslate"><span class="pre">LV_COLOR_DEPTH</span></code> in <em>lv_conf.h</em> will actually be linked into the resulting executable.</p>
<p>In case of binary files, you need to specify the color format you want:</p>
<ul class="simple">
<li><p>RGB332 for 8-bit color depth</p></li>
<li><p>RGB565 for 16-bit color depth</p></li>
<li><p>RGB565 Swap for 16-bit color depth (two bytes are swapped)</p></li>
<li><p>RGB888 for 32-bit color depth</p></li>
</ul>
</div>
<div class="section" id="manually-create-an-image">
<h3>Manually create an image<a class="headerlink" href="#manually-create-an-image" title="Permalink to this headline">¶</a></h3>
<p>If you are generating an image at run-time, you can craft an image variable to display it using LVGL. For example:</p>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="kt">uint8_t</span> <span class="n">my_img_data</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span><span class="mh">0x00</span><span class="p">,</span> <span class="mh">0x01</span><span class="p">,</span> <span class="mh">0x02</span><span class="p">,</span> <span class="p">...};</span>

<span class="k">static</span> <span class="n">lv_img_dsc_t</span> <span class="n">my_img_dsc</span> <span class="o">=</span> <span class="p">{</span>
    <span class="p">.</span><span class="n">header</span><span class="p">.</span><span class="n">always_zero</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span>
    <span class="p">.</span><span class="n">header</span><span class="p">.</span><span class="n">w</span> <span class="o">=</span> <span class="mi">80</span><span class="p">,</span>
    <span class="p">.</span><span class="n">header</span><span class="p">.</span><span class="n">h</span> <span class="o">=</span> <span class="mi">60</span><span class="p">,</span>
    <span class="p">.</span><span class="n">data_size</span> <span class="o">=</span> <span class="mi">80</span> <span class="o">*</span> <span class="mi">60</span> <span class="o">*</span> <span class="n">LV_COLOR_DEPTH</span> <span class="o">/</span> <span class="mi">8</span><span class="p">,</span>
    <span class="p">.</span><span class="n">header</span><span class="p">.</span><span class="n">cf</span> <span class="o">=</span> <span class="n">LV_IMG_CF_TRUE_COLOR</span><span class="p">,</span>          <span class="cm">/*Set the color format*/</span>
    <span class="p">.</span><span class="n">data</span> <span class="o">=</span> <span class="n">my_img_data</span><span class="p">,</span>
<span class="p">};</span>
</pre></div>
</div>
<p>If the color format is <code class="docutils literal notranslate"><span class="pre">LV_IMG_CF_TRUE_COLOR_ALPHA</span></code> you can set <code class="docutils literal notranslate"><span class="pre">data_size</span></code> like <code class="docutils literal notranslate"><span class="pre">80</span> <span class="pre">*</span> <span class="pre">60</span> <span class="pre">*</span> <span class="pre">LV_IMG_PX_SIZE_ALPHA_BYTE</span></code>.</p>
<p>Another (possibly simpler) option to create and display an image at run-time is to use the <a class="reference internal" href="../widgets/canvas.html"><span class="doc">Canvas</span></a> object.</p>
</div>
<div class="section" id="use-images">
<h3>Use images<a class="headerlink" href="#use-images" title="Permalink to this headline">¶</a></h3>
<p>The simplest way to use an image in LVGL is to display it with an <a class="reference internal" href="../widgets/img.html"><span class="doc">lv_img</span></a> object:</p>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="n">lv_obj_t</span> <span class="o">*</span> <span class="n">icon</span> <span class="o">=</span> <span class="n">lv_img_create</span><span class="p">(</span><span class="n">lv_scr_act</span><span class="p">(),</span> <span class="nb">NULL</span><span class="p">);</span>

<span class="cm">/*From variable*/</span>
<span class="n">lv_img_set_src</span><span class="p">(</span><span class="n">icon</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">my_icon_dsc</span><span class="p">);</span>

<span class="cm">/*From file*/</span>
<span class="n">lv_img_set_src</span><span class="p">(</span><span class="n">icon</span><span class="p">,</span> <span class="s">&quot;S:my_icon.bin&quot;</span><span class="p">);</span>
</pre></div>
</div>
<p>If the image was converted with the online converter, you should use <code class="docutils literal notranslate"><span class="pre">LV_IMG_DECLARE(my_icon_dsc)</span></code> to declare the image in the file where you want to use it.</p>
</div>
</div>
<div class="section" id="image-decoder">
<h2>Image decoder<a class="headerlink" href="#image-decoder" title="Permalink to this headline">¶</a></h2>
<p>As you can see in the <a class="reference external" href="#color-formats">Color formats</a> section, LVGL supports several built-in image formats. In many cases, these will be all you need. LVGL doesn't directly support, however, generic image formats like PNG or JPG.</p>
<p>To handle non-built-in image formats, you need to use external libraries and attach them to LVGL via the <em>Image decoder</em> interface.</p>
<p>The image decoder consists of 4 callbacks:</p>
<ul class="simple">
<li><p><strong>info</strong> get some basic info about the image (width, height and color format).</p></li>
<li><p><strong>open</strong> open the image: either store the decoded image or set it to <code class="docutils literal notranslate"><span class="pre">NULL</span></code> to indicate the image can be read line-by-line.</p></li>
<li><p><strong>read</strong> if <em>open</em> didn't fully open the image this function should give some decoded data (max 1 line) from a given position.</p></li>
<li><p><strong>close</strong> close the opened image, free the allocated resources.</p></li>
</ul>
<p>You can add any number of image decoders. When an image needs to be drawn, the library will try all the registered image decoder until finding one which can open the image, i.e. knowing that format.</p>
<p>The <code class="docutils literal notranslate"><span class="pre">LV_IMG_CF_TRUE_COLOR_...</span></code>, <code class="docutils literal notranslate"><span class="pre">LV_IMG_INDEXED_...</span></code> and <code class="docutils literal notranslate"><span class="pre">LV_IMG_ALPHA_...</span></code> formats (essentially, all non-<code class="docutils literal notranslate"><span class="pre">RAW</span></code> formats) are understood by the built-in decoder.</p>
<div class="section" id="custom-image-formats">
<h3>Custom image formats<a class="headerlink" href="#custom-image-formats" title="Permalink to this headline">¶</a></h3>
<p>The easiest way to create a custom image is to use the online image converter and set <code class="docutils literal notranslate"><span class="pre">Raw</span></code>, <code class="docutils literal notranslate"><span class="pre">Raw</span> <span class="pre">with</span> <span class="pre">alpha</span></code> or <code class="docutils literal notranslate"><span class="pre">Raw</span> <span class="pre">with</span> <span class="pre">chrome</span> <span class="pre">keyed</span></code> format. It will just take every byte of the binary file you uploaded and write it as the image &quot;bitmap&quot;. You then need to attach an image decoder that will parse that bitmap and generate the real, renderable bitmap.</p>
<p><code class="docutils literal notranslate"><span class="pre">header.cf</span></code> will be <code class="docutils literal notranslate"><span class="pre">LV_IMG_CF_RAW</span></code>, <code class="docutils literal notranslate"><span class="pre">LV_IMG_CF_RAW_ALPHA</span></code> or <code class="docutils literal notranslate"><span class="pre">LV_IMG_CF_RAW_CHROME_KEYED</span></code> accordingly. You should choose the correct format according to your needs: fully opaque image, use alpha channel or use chroma keying.</p>
<p>After decoding, the <em>raw</em> formats are considered <em>True color</em> by the library. In other words, the image decoder must decode the <em>Raw</em> images to <em>True color</em> according to the format described in [#color-formats](Color formats) section.</p>
<p>If you want to create a custom image, you should use <code class="docutils literal notranslate"><span class="pre">LV_IMG_CF_USER_ENCODED_0..7</span></code> color formats. However, the library can draw the images only in <em>True color</em> format (or <em>Raw</em> but finally it's supposed to be in <em>True color</em> format).
So the <code class="docutils literal notranslate"><span class="pre">LV_IMG_CF_USER_ENCODED_...</span></code> formats are not known by the library, therefore, they should be decoded to one of the known formats from [#color-formats](Color formats) section.
It's possible to decode the image to a non-true color format first, for example, <code class="docutils literal notranslate"><span class="pre">LV_IMG_INDEXED_4BITS</span></code>, and then call the built-in decoder functions to convert it to <em>True color</em>.</p>
<p>With <em>User encoded</em> formats, the color format in the open function (<code class="docutils literal notranslate"><span class="pre">dsc-&gt;header.cf</span></code>) should be changed according to the new format.</p>
</div>
<div class="section" id="register-an-image-decoder">
<h3>Register an image decoder<a class="headerlink" href="#register-an-image-decoder" title="Permalink to this headline">¶</a></h3>
<p>Here's an example of getting LVGL to work with PNG images.</p>
<p>First, you need to create a new image decoder and set some functions to open/close the PNG files. It should looks like this:</p>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cm">/*Create a new decoder and register functions */</span>
<span class="n">lv_img_decoder_t</span> <span class="o">*</span> <span class="n">dec</span> <span class="o">=</span> <span class="n">lv_img_decoder_create</span><span class="p">();</span>
<span class="n">lv_img_decoder_set_info_cb</span><span class="p">(</span><span class="n">dec</span><span class="p">,</span> <span class="n">decoder_info</span><span class="p">);</span>
<span class="n">lv_img_decoder_set_open_cb</span><span class="p">(</span><span class="n">dec</span><span class="p">,</span> <span class="n">decoder_open</span><span class="p">);</span>
<span class="n">lv_img_decoder_set_close_cb</span><span class="p">(</span><span class="n">dec</span><span class="p">,</span> <span class="n">decoder_close</span><span class="p">);</span>


<span class="cm">/**</span>
<span class="cm"> * Get info about a PNG image</span>
<span class="cm"> * @param decoder pointer to the decoder where this function belongs</span>
<span class="cm"> * @param src can be file name or pointer to a C array</span>
<span class="cm"> * @param header store the info here</span>
<span class="cm"> * @return LV_RES_OK: no error; LV_RES_INV: can&#39;t get the info</span>
<span class="cm"> */</span>
<span class="k">static</span> <span class="n">lv_res_t</span> <span class="n">decoder_info</span><span class="p">(</span><span class="n">lv_img_decoder_t</span> <span class="o">*</span> <span class="n">decoder</span><span class="p">,</span> <span class="k">const</span> <span class="kt">void</span> <span class="o">*</span> <span class="n">src</span><span class="p">,</span> <span class="n">lv_img_header_t</span> <span class="o">*</span> <span class="n">header</span><span class="p">)</span>
<span class="p">{</span>
  <span class="cm">/*Check whether the type `src` is known by the decoder*/</span>
  <span class="k">if</span><span class="p">(</span><span class="n">is_png</span><span class="p">(</span><span class="n">src</span><span class="p">)</span> <span class="o">==</span> <span class="nb">false</span><span class="p">)</span> <span class="k">return</span> <span class="n">LV_RES_INV</span><span class="p">;</span>

  <span class="cm">/* Read the PNG header and find `width` and `height` */</span>
  <span class="p">...</span>

  <span class="n">header</span><span class="o">-&gt;</span><span class="n">cf</span> <span class="o">=</span> <span class="n">LV_IMG_CF_RAW_ALPHA</span><span class="p">;</span>
  <span class="n">header</span><span class="o">-&gt;</span><span class="n">w</span> <span class="o">=</span> <span class="n">width</span><span class="p">;</span>
  <span class="n">header</span><span class="o">-&gt;</span><span class="n">h</span> <span class="o">=</span> <span class="n">height</span><span class="p">;</span>
<span class="p">}</span>

<span class="cm">/**</span>
<span class="cm"> * Open a PNG image and return the decided image</span>
<span class="cm"> * @param decoder pointer to the decoder where this function belongs</span>
<span class="cm"> * @param dsc pointer to a descriptor which describes this decoding session</span>
<span class="cm"> * @return LV_RES_OK: no error; LV_RES_INV: can&#39;t get the info</span>
<span class="cm"> */</span>
<span class="k">static</span> <span class="n">lv_res_t</span> <span class="n">decoder_open</span><span class="p">(</span><span class="n">lv_img_decoder_t</span> <span class="o">*</span> <span class="n">decoder</span><span class="p">,</span> <span class="n">lv_img_decoder_dsc_t</span> <span class="o">*</span> <span class="n">dsc</span><span class="p">)</span>
<span class="p">{</span>

  <span class="cm">/*Check whether the type `src` is known by the decoder*/</span>
  <span class="k">if</span><span class="p">(</span><span class="n">is_png</span><span class="p">(</span><span class="n">src</span><span class="p">)</span> <span class="o">==</span> <span class="nb">false</span><span class="p">)</span> <span class="k">return</span> <span class="n">LV_RES_INV</span><span class="p">;</span>

  <span class="cm">/*Decode and store the image. If `dsc-&gt;img_data` is `NULL`, the `read_line` function will be called to get the image data line-by-line*/</span>
  <span class="n">dsc</span><span class="o">-&gt;</span><span class="n">img_data</span> <span class="o">=</span> <span class="n">my_png_decoder</span><span class="p">(</span><span class="n">src</span><span class="p">);</span>

  <span class="cm">/*Change the color format if required. For PNG usually &#39;Raw&#39; is fine*/</span>
  <span class="n">dsc</span><span class="o">-&gt;</span><span class="n">header</span><span class="p">.</span><span class="n">cf</span> <span class="o">=</span> <span class="n">LV_IMG_CF_</span><span class="p">...</span>

  <span class="cm">/*Call a built in decoder function if required. It&#39;s not required if`my_png_decoder` opened the image in true color format.*/</span>
  <span class="n">lv_res_t</span> <span class="n">res</span> <span class="o">=</span> <span class="n">lv_img_decoder_built_in_open</span><span class="p">(</span><span class="n">decoder</span><span class="p">,</span> <span class="n">dsc</span><span class="p">);</span>

  <span class="k">return</span> <span class="n">res</span><span class="p">;</span>
<span class="p">}</span>

<span class="cm">/**</span>
<span class="cm"> * Decode `len` pixels starting from the given `x`, `y` coordinates and store them in `buf`.</span>
<span class="cm"> * Required only if the &quot;open&quot; function can&#39;t open the whole decoded pixel array. (dsc-&gt;img_data == NULL)</span>
<span class="cm"> * @param decoder pointer to the decoder the function associated with</span>
<span class="cm"> * @param dsc pointer to decoder descriptor</span>
<span class="cm"> * @param x start x coordinate</span>
<span class="cm"> * @param y start y coordinate</span>
<span class="cm"> * @param len number of pixels to decode</span>
<span class="cm"> * @param buf a buffer to store the decoded pixels</span>
<span class="cm"> * @return LV_RES_OK: ok; LV_RES_INV: failed</span>
<span class="cm"> */</span>
<span class="n">lv_res_t</span> <span class="n">decoder_built_in_read_line</span><span class="p">(</span><span class="n">lv_img_decoder_t</span> <span class="o">*</span> <span class="n">decoder</span><span class="p">,</span> <span class="n">lv_img_decoder_dsc_t</span> <span class="o">*</span> <span class="n">dsc</span><span class="p">,</span> <span class="n">lv_coord_t</span> <span class="n">x</span><span class="p">,</span>
                                                  <span class="n">lv_coord_t</span> <span class="n">y</span><span class="p">,</span> <span class="n">lv_coord_t</span> <span class="n">len</span><span class="p">,</span> <span class="kt">uint8_t</span> <span class="o">*</span> <span class="n">buf</span><span class="p">)</span>
<span class="p">{</span>
   <span class="cm">/*With PNG it&#39;s usually not required*/</span>

   <span class="cm">/*Copy `len` pixels from `x` and `y` coordinates in True color format to `buf` */</span>

<span class="p">}</span>

<span class="cm">/**</span>
<span class="cm"> * Free the allocated resources</span>
<span class="cm"> * @param decoder pointer to the decoder where this function belongs</span>
<span class="cm"> * @param dsc pointer to a descriptor which describes this decoding session</span>
<span class="cm"> */</span>
<span class="k">static</span> <span class="kt">void</span> <span class="n">decoder_close</span><span class="p">(</span><span class="n">lv_img_decoder_t</span> <span class="o">*</span> <span class="n">decoder</span><span class="p">,</span> <span class="n">lv_img_decoder_dsc_t</span> <span class="o">*</span> <span class="n">dsc</span><span class="p">)</span>
<span class="p">{</span>
  <span class="cm">/*Free all allocated data*/</span>

  <span class="cm">/*Call the built-in close function if the built-in open/read_line was used*/</span>
  <span class="n">lv_img_decoder_built_in_close</span><span class="p">(</span><span class="n">decoder</span><span class="p">,</span> <span class="n">dsc</span><span class="p">);</span>

<span class="p">}</span>
</pre></div>
</div>
<p>So in summary:</p>
<ul class="simple">
<li><p>In <code class="docutils literal notranslate"><span class="pre">decoder_info</span></code>, you should collect some basic information about the image and store it in <code class="docutils literal notranslate"><span class="pre">header</span></code>.</p></li>
<li><p>In <code class="docutils literal notranslate"><span class="pre">decoder_open</span></code>, you should try to open the image source pointed by <code class="docutils literal notranslate"><span class="pre">dsc-&gt;src</span></code>. Its type is already in <code class="docutils literal notranslate"><span class="pre">dsc-&gt;src_type</span> <span class="pre">==</span> <span class="pre">LV_IMG_SRC_FILE/VARIABLE</span></code>.
If this format/type is not supported by the decoder, return <code class="docutils literal notranslate"><span class="pre">LV_RES_INV</span></code>.
However, if you can open the image, a pointer to the decoded <em>True color</em> image should be set in <code class="docutils literal notranslate"><span class="pre">dsc-&gt;img_data</span></code>.
If the format is known but, you don't want to decode while image (e.g. no memory for it) set <code class="docutils literal notranslate"><span class="pre">dsc-&gt;img_data</span> <span class="pre">=</span> <span class="pre">NULL</span></code> to call <code class="docutils literal notranslate"><span class="pre">read_line</span></code> to get the pixels.</p></li>
<li><p>In <code class="docutils literal notranslate"><span class="pre">decoder_close</span></code> you should free all the allocated resources.</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">decoder_read</span></code> is optional. Decoding the whole image requires extra memory and some computational overhead.
However, if can decode one line of the image without decoding the whole image, you can save memory and time.
To indicate that, the <em>line read</em> function should be used, set <code class="docutils literal notranslate"><span class="pre">dsc-&gt;img_data</span> <span class="pre">=</span> <span class="pre">NULL</span></code> in the open function.</p></li>
</ul>
</div>
<div class="section" id="manually-use-an-image-decoder">
<h3>Manually use an image decoder<a class="headerlink" href="#manually-use-an-image-decoder" title="Permalink to this headline">¶</a></h3>
<p>LVGL will use the registered image decoder automatically if you try and draw a raw image (i.e. using the <code class="docutils literal notranslate"><span class="pre">lv_img</span></code> object) but you can use them manually too. Create a <code class="docutils literal notranslate"><span class="pre">lv_img_decoder_dsc_t</span></code> variable to describe the decoding session and call <code class="docutils literal notranslate"><span class="pre">lv_img_decoder_open()</span></code>.</p>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span>
<span class="n">lv_res_t</span> <span class="n">res</span><span class="p">;</span>
<span class="n">lv_img_decoder_dsc_t</span> <span class="n">dsc</span><span class="p">;</span>
<span class="n">res</span> <span class="o">=</span> <span class="n">lv_img_decoder_open</span><span class="p">(</span><span class="o">&amp;</span><span class="n">dsc</span><span class="p">,</span> <span class="o">&amp;</span><span class="n">my_img_dsc</span><span class="p">,</span> <span class="n">LV_COLOR_WHITE</span><span class="p">);</span>

<span class="k">if</span><span class="p">(</span><span class="n">res</span> <span class="o">==</span> <span class="n">LV_RES_OK</span><span class="p">)</span> <span class="p">{</span>
  <span class="cm">/*Do something with `dsc-&gt;img_data`*/</span>
  <span class="n">lv_img_decoder_close</span><span class="p">(</span><span class="o">&amp;</span><span class="n">dsc</span><span class="p">);</span>
<span class="p">}</span>
</pre></div>
</div>
</div>
</div>
<div class="section" id="image-caching">
<h2>Image caching<a class="headerlink" href="#image-caching" title="Permalink to this headline">¶</a></h2>
<p>Sometimes it takes a lot of time to open an image.
Continuously decoding a PNG image or loading images from a slow external memory would be inefficient and detrimental to the user experience.</p>
<p>Therefore, LVGL caches a given number of images. Caching means some images will be left open, hence LVGL can quickly access them from <code class="docutils literal notranslate"><span class="pre">dsc-&gt;img_data</span></code> instead of needing to decode them again.</p>
<p>Of course, caching images is resource-intensive as it uses more RAM (to store the decoded image). LVGL tries to optimize the process as much as possible (see below), but you will still need to evaluate if this would be beneficial for your platform or not. If you have a deeply embedded target which decodes small images from a relatively fast storage medium, image caching may not be worth it.</p>
<div class="section" id="cache-size">
<h3>Cache size<a class="headerlink" href="#cache-size" title="Permalink to this headline">¶</a></h3>
<p>The number of cache entries can be defined in <code class="docutils literal notranslate"><span class="pre">LV_IMG_CACHE_DEF_SIZE</span></code> in <em>lv_conf.h</em>. The default value is 1 so only the most recently used image will be left open.</p>
<p>The size of the cache can be changed at run-time with <code class="docutils literal notranslate"><span class="pre">lv_img_cache_set_size(entry_num)</span></code>.</p>
</div>
<div class="section" id="value-of-images">
<h3>Value of images<a class="headerlink" href="#value-of-images" title="Permalink to this headline">¶</a></h3>
<p>When you use more images than cache entries, LVGL can't cache all of the images. Instead, the library will close one of the cached images (to free space).</p>
<p>To decide which image to close, LVGL uses a measurement it previously made of how long it took to open the image. Cache entries that hold slower-to-open images are considered more valuable and are kept in the cache as long as possible.</p>
<p>If you want or need to override LVGL's measurement, you can manually set the <em>time to open</em> value in the decoder open function in <code class="docutils literal notranslate"><span class="pre">dsc-&gt;time_to_open</span> <span class="pre">=</span> <span class="pre">time_ms</span></code> to give a higher or lower value. (Leave it unchanged to let LVGL set it.)</p>
<p>Every cache entry has a <em>&quot;life&quot;</em> value. Every time an image opening happens through the cache, the <em>life</em> of all entries are decreased to make them older.
When a cached image is used, its <em>life</em> is increased by the <em>time to open</em> value to make it more alive.</p>
<p>If there is no more space in the cache, always the entry with the smallest life will be closed.</p>
</div>
<div class="section" id="memory-usage">
<h3>Memory usage<a class="headerlink" href="#memory-usage" title="Permalink to this headline">¶</a></h3>
<p>Note that, the cached image might continuously consume memory. For example, if 3 PNG images are cached, they will consume memory while they are opened.</p>
<p>Therefore, it's the user's responsibility to be sure there is enough RAM to cache, even the largest images at the same time.</p>
</div>
<div class="section" id="clean-the-cache">
<h3>Clean the cache<a class="headerlink" href="#clean-the-cache" title="Permalink to this headline">¶</a></h3>
<p>Let's say you have loaded a PNG image into a <code class="docutils literal notranslate"><span class="pre">lv_img_dsc_t</span> <span class="pre">my_png</span></code> variable and use it in an <code class="docutils literal notranslate"><span class="pre">lv_img</span></code> object. If the image is already cached and you then change the underlying PNG file, you need to notify LVGL to cache the image again. Otherwise, there is no easy way of detecting that the underlying file changed and LVGL will still draw the old image.</p>
<p>To do this, use <code class="docutils literal notranslate"><span class="pre">lv_img_cache_invalidate_src(&amp;my_png)</span></code>. If <code class="docutils literal notranslate"><span class="pre">NULL</span></code> is passed as a parameter, the whole cache will be cleaned.</p>
</div>
</div>
<div class="section" id="api">
<h2>API<a class="headerlink" href="#api" title="Permalink to this headline">¶</a></h2>
<div class="section" id="id1">
<h3>Image decoder<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h3>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-typedefs">Typedefs</p>
<dl class="cpp type">
<dt id="_CPPv412lv_img_src_t">
<span id="_CPPv312lv_img_src_t"></span><span id="_CPPv212lv_img_src_t"></span><span id="lv_img_src_t"></span><span class="target" id="lv__img__decoder_8h_1a4a47e194ccb92c2d8bc70fa9e3655413"></span><em class="property"><span class="pre">typedef</span> </em><span class="pre">uint8_t</span> <code class="sig-name descname"><span class="pre">lv_img_src_t</span></code><a class="headerlink" href="#_CPPv412lv_img_src_t" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp type">
<dt id="_CPPv423lv_img_decoder_info_f_t">
<span id="_CPPv323lv_img_decoder_info_f_t"></span><span id="_CPPv223lv_img_decoder_info_f_t"></span><span id="lv_img_decoder_info_f_t"></span><span class="target" id="lv__img__decoder_8h_1a133228664e2dcb89c32ad769ff1d77eb"></span><em class="property"><span class="pre">typedef</span> </em><span class="pre">lv_res_t</span> <span class="pre">(</span><span class="pre">*</span><code class="sig-name descname"><span class="pre">lv_img_decoder_info_f_t</span></code><span class="pre">)</span><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#_CPPv415_lv_img_decoder" title="_lv_img_decoder"><span class="pre">_lv_img_decoder</span></a> <span class="pre">*</span><span class="pre">decoder</span>, <em class="property"><span class="pre">const</span></em> <span class="pre">void</span> <span class="pre">*</span><span class="pre">src</span>, <a class="reference internal" href="#_CPPv415lv_img_header_t" title="lv_img_header_t"><span class="pre">lv_img_header_t</span></a> <span class="pre">*</span><span class="pre">header</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv423lv_img_decoder_info_f_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get info from an image and store in the <code class="docutils literal notranslate"><span class="pre">header</span></code> </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>src</strong> -- the image source. Can be a pointer to a C array or a file name (Use <code class="docutils literal notranslate"><span class="pre">lv_img_src_get_type</span></code> to determine the type) </p></li>
<li><p><strong>header</strong> -- store the info here </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>LV_RES_OK: info written correctly; LV_RES_INV: failed </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp type">
<dt id="_CPPv423lv_img_decoder_open_f_t">
<span id="_CPPv323lv_img_decoder_open_f_t"></span><span id="_CPPv223lv_img_decoder_open_f_t"></span><span id="lv_img_decoder_open_f_t"></span><span class="target" id="lv__img__decoder_8h_1a171e7ebd6b47bcee5b41d7c0a2ff4480"></span><em class="property"><span class="pre">typedef</span> </em><span class="pre">lv_res_t</span> <span class="pre">(</span><span class="pre">*</span><code class="sig-name descname"><span class="pre">lv_img_decoder_open_f_t</span></code><span class="pre">)</span><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#_CPPv415_lv_img_decoder" title="_lv_img_decoder"><span class="pre">_lv_img_decoder</span></a> <span class="pre">*</span><span class="pre">decoder</span>, <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#_CPPv419_lv_img_decoder_dsc" title="_lv_img_decoder_dsc"><span class="pre">_lv_img_decoder_dsc</span></a> <span class="pre">*</span><span class="pre">dsc</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv423lv_img_decoder_open_f_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Open an image for decoding. Prepare it as it is required to read it later </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>decoder</strong> -- pointer to the decoder the function associated with </p></li>
<li><p><strong>dsc</strong> -- pointer to decoder descriptor. <code class="docutils literal notranslate"><span class="pre">src</span></code>, <code class="docutils literal notranslate"><span class="pre">style</span></code> are already initialized in it. </p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="cpp type">
<dt id="_CPPv428lv_img_decoder_read_line_f_t">
<span id="_CPPv328lv_img_decoder_read_line_f_t"></span><span id="_CPPv228lv_img_decoder_read_line_f_t"></span><span id="lv_img_decoder_read_line_f_t"></span><span class="target" id="lv__img__decoder_8h_1a88489aad5fa8409e5b600a839408ef9d"></span><em class="property"><span class="pre">typedef</span> </em><span class="pre">lv_res_t</span> <span class="pre">(</span><span class="pre">*</span><code class="sig-name descname"><span class="pre">lv_img_decoder_read_line_f_t</span></code><span class="pre">)</span><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#_CPPv415_lv_img_decoder" title="_lv_img_decoder"><span class="pre">_lv_img_decoder</span></a> <span class="pre">*</span><span class="pre">decoder</span>, <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#_CPPv419_lv_img_decoder_dsc" title="_lv_img_decoder_dsc"><span class="pre">_lv_img_decoder_dsc</span></a> <span class="pre">*</span><span class="pre">dsc</span>, <span class="pre">lv_coord_t</span> <span class="pre">x</span>, <span class="pre">lv_coord_t</span> <span class="pre">y</span>, <span class="pre">lv_coord_t</span> <span class="pre">len</span>, <span class="pre">uint8_t</span> <span class="pre">*</span><span class="pre">buf</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv428lv_img_decoder_read_line_f_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Decode <code class="docutils literal notranslate"><span class="pre">len</span></code> pixels starting from the given <code class="docutils literal notranslate"><span class="pre">x</span></code>, <code class="docutils literal notranslate"><span class="pre">y</span></code> coordinates and store them in <code class="docutils literal notranslate"><span class="pre">buf</span></code>. Required only if the &quot;open&quot; function can't return with the whole decoded pixel array. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>decoder</strong> -- pointer to the decoder the function associated with </p></li>
<li><p><strong>dsc</strong> -- pointer to decoder descriptor </p></li>
<li><p><strong>x</strong> -- start x coordinate </p></li>
<li><p><strong>y</strong> -- start y coordinate </p></li>
<li><p><strong>len</strong> -- number of pixels to decode </p></li>
<li><p><strong>buf</strong> -- a buffer to store the decoded pixels </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>LV_RES_OK: ok; LV_RES_INV: failed </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp type">
<dt id="_CPPv424lv_img_decoder_close_f_t">
<span id="_CPPv324lv_img_decoder_close_f_t"></span><span id="_CPPv224lv_img_decoder_close_f_t"></span><span id="lv_img_decoder_close_f_t"></span><span class="target" id="lv__img__decoder_8h_1afc31c2389f7a7a36765199f197528a84"></span><em class="property"><span class="pre">typedef</span> </em><span class="pre">void</span> <span class="pre">(</span><span class="pre">*</span><code class="sig-name descname"><span class="pre">lv_img_decoder_close_f_t</span></code><span class="pre">)</span><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#_CPPv415_lv_img_decoder" title="_lv_img_decoder"><span class="pre">_lv_img_decoder</span></a> <span class="pre">*</span><span class="pre">decoder</span>, <em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#_CPPv419_lv_img_decoder_dsc" title="_lv_img_decoder_dsc"><span class="pre">_lv_img_decoder_dsc</span></a> <span class="pre">*</span><span class="pre">dsc</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv424lv_img_decoder_close_f_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Close the pending decoding. Free resources etc. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>decoder</strong> -- pointer to the decoder the function associated with </p></li>
<li><p><strong>dsc</strong> -- pointer to decoder descriptor </p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="cpp type">
<dt id="_CPPv416lv_img_decoder_t">
<span id="_CPPv316lv_img_decoder_t"></span><span id="_CPPv216lv_img_decoder_t"></span><span id="lv_img_decoder_t"></span><span class="target" id="lv__img__decoder_8h_1aec667432b70eb616c99b3c52b9f2374c"></span><em class="property"><span class="pre">typedef</span> </em><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#_CPPv415_lv_img_decoder" title="_lv_img_decoder"><span class="pre">_lv_img_decoder</span></a> <code class="sig-name descname"><span class="pre">lv_img_decoder_t</span></code><a class="headerlink" href="#_CPPv416lv_img_decoder_t" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp type">
<dt id="_CPPv420lv_img_decoder_dsc_t">
<span id="_CPPv320lv_img_decoder_dsc_t"></span><span id="_CPPv220lv_img_decoder_dsc_t"></span><span id="lv_img_decoder_dsc_t"></span><span class="target" id="lv__img__decoder_8h_1afc8e6e1704f5563503a57fbf677bb79f"></span><em class="property"><span class="pre">typedef</span> </em><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#_CPPv419_lv_img_decoder_dsc" title="_lv_img_decoder_dsc"><span class="pre">_lv_img_decoder_dsc</span></a> <code class="sig-name descname"><span class="pre">lv_img_decoder_dsc_t</span></code><a class="headerlink" href="#_CPPv420lv_img_decoder_dsc_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Describe an image decoding session. Stores data about the decoding </p>
</dd></dl>

</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-enums">Enums</p>
<dl class="cpp enum">
<dt id="_CPPv4Ut2_26">
<span id="_CPPv3Ut2_26"></span><span class="target" id="lv__img__decoder_8h_1a7ff5f2dff38e7639981794c43dc9167b"></span><em class="property"><span class="pre">enum</span> </em><strong><span class="pre">[anonymous]</span></strong><a class="headerlink" href="#_CPPv4Ut2_26" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Source of image. </p>
<p><em>Values:</em></p>
<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2619LV_IMG_SRC_VARIABLEE">
<span id="_CPPv3NUt2_2619LV_IMG_SRC_VARIABLEE"></span><span class="target" id="lv__img__decoder_8h_1a7ff5f2dff38e7639981794c43dc9167bafa1cf250086dd605e6d62d0ec792d6f5"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_SRC_VARIABLE</span></code><a class="headerlink" href="#_CPPv4NUt2_2619LV_IMG_SRC_VARIABLEE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2615LV_IMG_SRC_FILEE">
<span id="_CPPv3NUt2_2615LV_IMG_SRC_FILEE"></span><span class="target" id="lv__img__decoder_8h_1a7ff5f2dff38e7639981794c43dc9167ba18b40180a9208d2b3e8d9bbc6968d3ce"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_SRC_FILE</span></code><a class="headerlink" href="#_CPPv4NUt2_2615LV_IMG_SRC_FILEE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Binary/C variable </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2617LV_IMG_SRC_SYMBOLE">
<span id="_CPPv3NUt2_2617LV_IMG_SRC_SYMBOLE"></span><span class="target" id="lv__img__decoder_8h_1a7ff5f2dff38e7639981794c43dc9167bab9437e398616459e8c7bc579c22962f4"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_SRC_SYMBOL</span></code><a class="headerlink" href="#_CPPv4NUt2_2617LV_IMG_SRC_SYMBOLE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>File in filesystem </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2618LV_IMG_SRC_UNKNOWNE">
<span id="_CPPv3NUt2_2618LV_IMG_SRC_UNKNOWNE"></span><span class="target" id="lv__img__decoder_8h_1a7ff5f2dff38e7639981794c43dc9167baaca460ed70608fe3df9865c7e9e69a99"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_SRC_UNKNOWN</span></code><a class="headerlink" href="#_CPPv4NUt2_2618LV_IMG_SRC_UNKNOWNE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Symbol (lv_symbol_def.h) </p>
</dd></dl>

</dd></dl>

</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-functions">Functions</p>
<dl class="cpp function">
<dt id="_CPPv420_lv_img_decoder_initv">
<span id="_CPPv320_lv_img_decoder_initv"></span><span id="_CPPv220_lv_img_decoder_initv"></span><span id="_lv_img_decoder_init__void"></span><span class="target" id="lv__img__decoder_8h_1a2401ec660a45155ade702834a2b35bca"></span><span class="pre">void</span> <code class="sig-name descname"><span class="pre">_lv_img_decoder_init</span></code><span class="sig-paren">(</span><span class="pre">void</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv420_lv_img_decoder_initv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Initialize the image decoder module </p>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv423lv_img_decoder_get_infoPKcP15lv_img_header_t">
<span id="_CPPv323lv_img_decoder_get_infoPKcP15lv_img_header_t"></span><span id="_CPPv223lv_img_decoder_get_infoPKcP15lv_img_header_t"></span><span id="lv_img_decoder_get_info__cCP.lv_img_header_tP"></span><span class="target" id="lv__img__decoder_8h_1aaea7a28b7f50c88d9edae731c7b17dc2"></span><span class="pre">lv_res_t</span> <code class="sig-name descname"><span class="pre">lv_img_decoder_get_info</span></code><span class="sig-paren">(</span><em class="property"><span class="pre">const</span></em> <span class="pre">char</span> <span class="pre">*</span><em><span class="pre">src</span></em>, <a class="reference internal" href="#_CPPv415lv_img_header_t" title="lv_img_header_t"><span class="pre">lv_img_header_t</span></a> <span class="pre">*</span><em><span class="pre">header</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv423lv_img_decoder_get_infoPKcP15lv_img_header_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get information about an image. Try the created image decoder one by one. Once one is able to get info that info will be used. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>src</strong> -- the image source. Can be 1) File name: E.g. &quot;S:folder/img1.png&quot; (The drivers needs to registered via <code class="docutils literal notranslate"><span class="pre">lv_fs_add_drv()</span></code>) 2) Variable: Pointer to an <code class="docutils literal notranslate"><a class="reference internal" href="#structlv__img__dsc__t"><span class="std std-ref"><span class="pre">lv_img_dsc_t</span></span></a></code> variable 3) Symbol: E.g. <code class="docutils literal notranslate"><span class="pre">LV_SYMBOL_OK</span></code> </p></li>
<li><p><strong>header</strong> -- the image info will be stored here </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>LV_RES_OK: success; LV_RES_INV: wasn't able to get info about the image </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv419lv_img_decoder_openP20lv_img_decoder_dsc_tPKv10lv_color_t">
<span id="_CPPv319lv_img_decoder_openP20lv_img_decoder_dsc_tPKv10lv_color_t"></span><span id="_CPPv219lv_img_decoder_openP20lv_img_decoder_dsc_tPKv10lv_color_t"></span><span id="lv_img_decoder_open__lv_img_decoder_dsc_tP.voidCP.lv_color_t"></span><span class="target" id="lv__img__decoder_8h_1ab1fe35500b43eb0c3c5dd9225ad98a1f"></span><span class="pre">lv_res_t</span> <code class="sig-name descname"><span class="pre">lv_img_decoder_open</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv420lv_img_decoder_dsc_t" title="lv_img_decoder_dsc_t"><span class="pre">lv_img_decoder_dsc_t</span></a> <span class="pre">*</span><em><span class="pre">dsc</span></em>, <em class="property"><span class="pre">const</span></em> <span class="pre">void</span> <span class="pre">*</span><em><span class="pre">src</span></em>, <span class="pre">lv_color_t</span> <em><span class="pre">color</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419lv_img_decoder_openP20lv_img_decoder_dsc_tPKv10lv_color_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Open an image. Try the created image decoder one by one. Once one is able to open the image that decoder is save in <code class="docutils literal notranslate"><span class="pre">dsc</span></code> </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>dsc</strong> -- describe a decoding session. Simply a pointer to an <code class="docutils literal notranslate"><span class="pre">lv_img_decoder_dsc_t</span></code> variable. </p></li>
<li><p><strong>src</strong> -- the image source. Can be 1) File name: E.g. &quot;S:folder/img1.png&quot; (The drivers needs to registered via <code class="docutils literal notranslate"><span class="pre">lv_fs_add_drv()</span></code>) 2) Variable: Pointer to an <code class="docutils literal notranslate"><a class="reference internal" href="#structlv__img__dsc__t"><span class="std std-ref"><span class="pre">lv_img_dsc_t</span></span></a></code> variable 3) Symbol: E.g. <code class="docutils literal notranslate"><span class="pre">LV_SYMBOL_OK</span></code> </p></li>
<li><p><strong>color</strong> -- The color of the image with <code class="docutils literal notranslate"><span class="pre">LV_IMG_CF_ALPHA_...</span></code> </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>LV_RES_OK: opened the image. <code class="docutils literal notranslate"><span class="pre">dsc-&gt;img_data</span></code> and <code class="docutils literal notranslate"><span class="pre">dsc-&gt;header</span></code> are set. LV_RES_INV: none of the registered image decoders were able to open the image. </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv424lv_img_decoder_read_lineP20lv_img_decoder_dsc_t10lv_coord_t10lv_coord_t10lv_coord_tP7uint8_t">
<span id="_CPPv324lv_img_decoder_read_lineP20lv_img_decoder_dsc_t10lv_coord_t10lv_coord_t10lv_coord_tP7uint8_t"></span><span id="_CPPv224lv_img_decoder_read_lineP20lv_img_decoder_dsc_t10lv_coord_t10lv_coord_t10lv_coord_tP7uint8_t"></span><span id="lv_img_decoder_read_line__lv_img_decoder_dsc_tP.lv_coord_t.lv_coord_t.lv_coord_t.uint8_tP"></span><span class="target" id="lv__img__decoder_8h_1aa1d1b19e85278c9d5a0f02d0bbdeacc2"></span><span class="pre">lv_res_t</span> <code class="sig-name descname"><span class="pre">lv_img_decoder_read_line</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv420lv_img_decoder_dsc_t" title="lv_img_decoder_dsc_t"><span class="pre">lv_img_decoder_dsc_t</span></a> <span class="pre">*</span><em><span class="pre">dsc</span></em>, <span class="pre">lv_coord_t</span> <em><span class="pre">x</span></em>, <span class="pre">lv_coord_t</span> <em><span class="pre">y</span></em>, <span class="pre">lv_coord_t</span> <em><span class="pre">len</span></em>, <span class="pre">uint8_t</span> <span class="pre">*</span><em><span class="pre">buf</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv424lv_img_decoder_read_lineP20lv_img_decoder_dsc_t10lv_coord_t10lv_coord_t10lv_coord_tP7uint8_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Read a line from an opened image </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>dsc</strong> -- pointer to <code class="docutils literal notranslate"><span class="pre">lv_img_decoder_dsc_t</span></code> used in <code class="docutils literal notranslate"><span class="pre">lv_img_decoder_open</span></code> </p></li>
<li><p><strong>x</strong> -- start X coordinate (from left) </p></li>
<li><p><strong>y</strong> -- start Y coordinate (from top) </p></li>
<li><p><strong>len</strong> -- number of pixels to read </p></li>
<li><p><strong>buf</strong> -- store the data here </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>LV_RES_OK: success; LV_RES_INV: an error occurred </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv420lv_img_decoder_closeP20lv_img_decoder_dsc_t">
<span id="_CPPv320lv_img_decoder_closeP20lv_img_decoder_dsc_t"></span><span id="_CPPv220lv_img_decoder_closeP20lv_img_decoder_dsc_t"></span><span id="lv_img_decoder_close__lv_img_decoder_dsc_tP"></span><span class="target" id="lv__img__decoder_8h_1a43f69939ef89a85e3f7db25f12994259"></span><span class="pre">void</span> <code class="sig-name descname"><span class="pre">lv_img_decoder_close</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv420lv_img_decoder_dsc_t" title="lv_img_decoder_dsc_t"><span class="pre">lv_img_decoder_dsc_t</span></a> <span class="pre">*</span><em><span class="pre">dsc</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv420lv_img_decoder_closeP20lv_img_decoder_dsc_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Close a decoding session </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>dsc</strong> -- pointer to <code class="docutils literal notranslate"><span class="pre">lv_img_decoder_dsc_t</span></code> used in <code class="docutils literal notranslate"><span class="pre">lv_img_decoder_open</span></code> </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv421lv_img_decoder_createv">
<span id="_CPPv321lv_img_decoder_createv"></span><span id="_CPPv221lv_img_decoder_createv"></span><span id="lv_img_decoder_create__void"></span><span class="target" id="lv__img__decoder_8h_1a8df63dfae9b145c89e7ba083f6d799f8"></span><a class="reference internal" href="#_CPPv416lv_img_decoder_t" title="lv_img_decoder_t"><span class="pre">lv_img_decoder_t</span></a> <span class="pre">*</span><code class="sig-name descname"><span class="pre">lv_img_decoder_create</span></code><span class="sig-paren">(</span><span class="pre">void</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv421lv_img_decoder_createv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Create a new image decoder </p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>pointer to the new image decoder </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv421lv_img_decoder_deleteP16lv_img_decoder_t">
<span id="_CPPv321lv_img_decoder_deleteP16lv_img_decoder_t"></span><span id="_CPPv221lv_img_decoder_deleteP16lv_img_decoder_t"></span><span id="lv_img_decoder_delete__lv_img_decoder_tP"></span><span class="target" id="lv__img__decoder_8h_1a4300a1f473bc2bb4759e73c3dbda8752"></span><span class="pre">void</span> <code class="sig-name descname"><span class="pre">lv_img_decoder_delete</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv416lv_img_decoder_t" title="lv_img_decoder_t"><span class="pre">lv_img_decoder_t</span></a> <span class="pre">*</span><em><span class="pre">decoder</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv421lv_img_decoder_deleteP16lv_img_decoder_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Delete an image decoder </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>decoder</strong> -- pointer to an image decoder </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv426lv_img_decoder_set_info_cbP16lv_img_decoder_t23lv_img_decoder_info_f_t">
<span id="_CPPv326lv_img_decoder_set_info_cbP16lv_img_decoder_t23lv_img_decoder_info_f_t"></span><span id="_CPPv226lv_img_decoder_set_info_cbP16lv_img_decoder_t23lv_img_decoder_info_f_t"></span><span id="lv_img_decoder_set_info_cb__lv_img_decoder_tP.lv_img_decoder_info_f_t"></span><span class="target" id="lv__img__decoder_8h_1a7ad354bc2edc1a65ed93e1e34ca7da1d"></span><span class="pre">void</span> <code class="sig-name descname"><span class="pre">lv_img_decoder_set_info_cb</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv416lv_img_decoder_t" title="lv_img_decoder_t"><span class="pre">lv_img_decoder_t</span></a> <span class="pre">*</span><em><span class="pre">decoder</span></em>, <a class="reference internal" href="#_CPPv423lv_img_decoder_info_f_t" title="lv_img_decoder_info_f_t"><span class="pre">lv_img_decoder_info_f_t</span></a> <em><span class="pre">info_cb</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv426lv_img_decoder_set_info_cbP16lv_img_decoder_t23lv_img_decoder_info_f_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set a callback to get information about the image </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>decoder</strong> -- pointer to an image decoder </p></li>
<li><p><strong>info_cb</strong> -- a function to collect info about an image (fill an <code class="docutils literal notranslate"><span class="pre">lv_img_header_t</span></code> struct) </p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv426lv_img_decoder_set_open_cbP16lv_img_decoder_t23lv_img_decoder_open_f_t">
<span id="_CPPv326lv_img_decoder_set_open_cbP16lv_img_decoder_t23lv_img_decoder_open_f_t"></span><span id="_CPPv226lv_img_decoder_set_open_cbP16lv_img_decoder_t23lv_img_decoder_open_f_t"></span><span id="lv_img_decoder_set_open_cb__lv_img_decoder_tP.lv_img_decoder_open_f_t"></span><span class="target" id="lv__img__decoder_8h_1a84de5e7107f70800033055b61c2fa454"></span><span class="pre">void</span> <code class="sig-name descname"><span class="pre">lv_img_decoder_set_open_cb</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv416lv_img_decoder_t" title="lv_img_decoder_t"><span class="pre">lv_img_decoder_t</span></a> <span class="pre">*</span><em><span class="pre">decoder</span></em>, <a class="reference internal" href="#_CPPv423lv_img_decoder_open_f_t" title="lv_img_decoder_open_f_t"><span class="pre">lv_img_decoder_open_f_t</span></a> <em><span class="pre">open_cb</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv426lv_img_decoder_set_open_cbP16lv_img_decoder_t23lv_img_decoder_open_f_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set a callback to open an image </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>decoder</strong> -- pointer to an image decoder </p></li>
<li><p><strong>open_cb</strong> -- a function to open an image </p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv431lv_img_decoder_set_read_line_cbP16lv_img_decoder_t28lv_img_decoder_read_line_f_t">
<span id="_CPPv331lv_img_decoder_set_read_line_cbP16lv_img_decoder_t28lv_img_decoder_read_line_f_t"></span><span id="_CPPv231lv_img_decoder_set_read_line_cbP16lv_img_decoder_t28lv_img_decoder_read_line_f_t"></span><span id="lv_img_decoder_set_read_line_cb__lv_img_decoder_tP.lv_img_decoder_read_line_f_t"></span><span class="target" id="lv__img__decoder_8h_1a917d7d1c9c59a214edcf844f378c4a33"></span><span class="pre">void</span> <code class="sig-name descname"><span class="pre">lv_img_decoder_set_read_line_cb</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv416lv_img_decoder_t" title="lv_img_decoder_t"><span class="pre">lv_img_decoder_t</span></a> <span class="pre">*</span><em><span class="pre">decoder</span></em>, <a class="reference internal" href="#_CPPv428lv_img_decoder_read_line_f_t" title="lv_img_decoder_read_line_f_t"><span class="pre">lv_img_decoder_read_line_f_t</span></a> <em><span class="pre">read_line_cb</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv431lv_img_decoder_set_read_line_cbP16lv_img_decoder_t28lv_img_decoder_read_line_f_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set a callback to a decoded line of an image </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>decoder</strong> -- pointer to an image decoder </p></li>
<li><p><strong>read_line_cb</strong> -- a function to read a line of an image </p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv427lv_img_decoder_set_close_cbP16lv_img_decoder_t24lv_img_decoder_close_f_t">
<span id="_CPPv327lv_img_decoder_set_close_cbP16lv_img_decoder_t24lv_img_decoder_close_f_t"></span><span id="_CPPv227lv_img_decoder_set_close_cbP16lv_img_decoder_t24lv_img_decoder_close_f_t"></span><span id="lv_img_decoder_set_close_cb__lv_img_decoder_tP.lv_img_decoder_close_f_t"></span><span class="target" id="lv__img__decoder_8h_1a3be3e7a764fceea05389aeb6d0c30aa6"></span><span class="pre">void</span> <code class="sig-name descname"><span class="pre">lv_img_decoder_set_close_cb</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv416lv_img_decoder_t" title="lv_img_decoder_t"><span class="pre">lv_img_decoder_t</span></a> <span class="pre">*</span><em><span class="pre">decoder</span></em>, <a class="reference internal" href="#_CPPv424lv_img_decoder_close_f_t" title="lv_img_decoder_close_f_t"><span class="pre">lv_img_decoder_close_f_t</span></a> <em><span class="pre">close_cb</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv427lv_img_decoder_set_close_cbP16lv_img_decoder_t24lv_img_decoder_close_f_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set a callback to close a decoding session. E.g. close files and free other resources. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>decoder</strong> -- pointer to an image decoder </p></li>
<li><p><strong>close_cb</strong> -- a function to close a decoding session </p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv428lv_img_decoder_built_in_infoP16lv_img_decoder_tPKvP15lv_img_header_t">
<span id="_CPPv328lv_img_decoder_built_in_infoP16lv_img_decoder_tPKvP15lv_img_header_t"></span><span id="_CPPv228lv_img_decoder_built_in_infoP16lv_img_decoder_tPKvP15lv_img_header_t"></span><span id="lv_img_decoder_built_in_info__lv_img_decoder_tP.voidCP.lv_img_header_tP"></span><span class="target" id="lv__img__decoder_8h_1ae6ef4d47f2563b3e2d563a2c65e3deba"></span><span class="pre">lv_res_t</span> <code class="sig-name descname"><span class="pre">lv_img_decoder_built_in_info</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv416lv_img_decoder_t" title="lv_img_decoder_t"><span class="pre">lv_img_decoder_t</span></a> <span class="pre">*</span><em><span class="pre">decoder</span></em>, <em class="property"><span class="pre">const</span></em> <span class="pre">void</span> <span class="pre">*</span><em><span class="pre">src</span></em>, <a class="reference internal" href="#_CPPv415lv_img_header_t" title="lv_img_header_t"><span class="pre">lv_img_header_t</span></a> <span class="pre">*</span><em><span class="pre">header</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv428lv_img_decoder_built_in_infoP16lv_img_decoder_tPKvP15lv_img_header_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get info about a built-in image </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>decoder</strong> -- the decoder where this function belongs </p></li>
<li><p><strong>src</strong> -- the image source: pointer to an <code class="docutils literal notranslate"><a class="reference internal" href="#structlv__img__dsc__t"><span class="std std-ref"><span class="pre">lv_img_dsc_t</span></span></a></code> variable, a file path or a symbol </p></li>
<li><p><strong>header</strong> -- store the image data here </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>LV_RES_OK: the info is successfully stored in <code class="docutils literal notranslate"><span class="pre">header</span></code>; LV_RES_INV: unknown format or other error. </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv428lv_img_decoder_built_in_openP16lv_img_decoder_tP20lv_img_decoder_dsc_t">
<span id="_CPPv328lv_img_decoder_built_in_openP16lv_img_decoder_tP20lv_img_decoder_dsc_t"></span><span id="_CPPv228lv_img_decoder_built_in_openP16lv_img_decoder_tP20lv_img_decoder_dsc_t"></span><span id="lv_img_decoder_built_in_open__lv_img_decoder_tP.lv_img_decoder_dsc_tP"></span><span class="target" id="lv__img__decoder_8h_1ad919edc1516f34c4490c4f42603e8520"></span><span class="pre">lv_res_t</span> <code class="sig-name descname"><span class="pre">lv_img_decoder_built_in_open</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv416lv_img_decoder_t" title="lv_img_decoder_t"><span class="pre">lv_img_decoder_t</span></a> <span class="pre">*</span><em><span class="pre">decoder</span></em>, <a class="reference internal" href="#_CPPv420lv_img_decoder_dsc_t" title="lv_img_decoder_dsc_t"><span class="pre">lv_img_decoder_dsc_t</span></a> <span class="pre">*</span><em><span class="pre">dsc</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv428lv_img_decoder_built_in_openP16lv_img_decoder_tP20lv_img_decoder_dsc_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Open a built in image </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>decoder</strong> -- the decoder where this function belongs </p></li>
<li><p><strong>dsc</strong> -- pointer to decoder descriptor. <code class="docutils literal notranslate"><span class="pre">src</span></code>, <code class="docutils literal notranslate"><span class="pre">style</span></code> are already initialized in it. </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>LV_RES_OK: the info is successfully stored in <code class="docutils literal notranslate"><span class="pre">header</span></code>; LV_RES_INV: unknown format or other error. </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv433lv_img_decoder_built_in_read_lineP16lv_img_decoder_tP20lv_img_decoder_dsc_t10lv_coord_t10lv_coord_t10lv_coord_tP7uint8_t">
<span id="_CPPv333lv_img_decoder_built_in_read_lineP16lv_img_decoder_tP20lv_img_decoder_dsc_t10lv_coord_t10lv_coord_t10lv_coord_tP7uint8_t"></span><span id="_CPPv233lv_img_decoder_built_in_read_lineP16lv_img_decoder_tP20lv_img_decoder_dsc_t10lv_coord_t10lv_coord_t10lv_coord_tP7uint8_t"></span><span id="lv_img_decoder_built_in_read_line__lv_img_decoder_tP.lv_img_decoder_dsc_tP.lv_coord_t.lv_coord_t.lv_coord_t.uint8_tP"></span><span class="target" id="lv__img__decoder_8h_1a30e1c34d54e6d1af88b11da95b30782e"></span><span class="pre">lv_res_t</span> <code class="sig-name descname"><span class="pre">lv_img_decoder_built_in_read_line</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv416lv_img_decoder_t" title="lv_img_decoder_t"><span class="pre">lv_img_decoder_t</span></a> <span class="pre">*</span><em><span class="pre">decoder</span></em>, <a class="reference internal" href="#_CPPv420lv_img_decoder_dsc_t" title="lv_img_decoder_dsc_t"><span class="pre">lv_img_decoder_dsc_t</span></a> <span class="pre">*</span><em><span class="pre">dsc</span></em>, <span class="pre">lv_coord_t</span> <em><span class="pre">x</span></em>, <span class="pre">lv_coord_t</span> <em><span class="pre">y</span></em>, <span class="pre">lv_coord_t</span> <em><span class="pre">len</span></em>, <span class="pre">uint8_t</span> <span class="pre">*</span><em><span class="pre">buf</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv433lv_img_decoder_built_in_read_lineP16lv_img_decoder_tP20lv_img_decoder_dsc_t10lv_coord_t10lv_coord_t10lv_coord_tP7uint8_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Decode <code class="docutils literal notranslate"><span class="pre">len</span></code> pixels starting from the given <code class="docutils literal notranslate"><span class="pre">x</span></code>, <code class="docutils literal notranslate"><span class="pre">y</span></code> coordinates and store them in <code class="docutils literal notranslate"><span class="pre">buf</span></code>. Required only if the &quot;open&quot; function can't return with the whole decoded pixel array. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>decoder</strong> -- pointer to the decoder the function associated with </p></li>
<li><p><strong>dsc</strong> -- pointer to decoder descriptor </p></li>
<li><p><strong>x</strong> -- start x coordinate </p></li>
<li><p><strong>y</strong> -- start y coordinate </p></li>
<li><p><strong>len</strong> -- number of pixels to decode </p></li>
<li><p><strong>buf</strong> -- a buffer to store the decoded pixels </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>LV_RES_OK: ok; LV_RES_INV: failed </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv429lv_img_decoder_built_in_closeP16lv_img_decoder_tP20lv_img_decoder_dsc_t">
<span id="_CPPv329lv_img_decoder_built_in_closeP16lv_img_decoder_tP20lv_img_decoder_dsc_t"></span><span id="_CPPv229lv_img_decoder_built_in_closeP16lv_img_decoder_tP20lv_img_decoder_dsc_t"></span><span id="lv_img_decoder_built_in_close__lv_img_decoder_tP.lv_img_decoder_dsc_tP"></span><span class="target" id="lv__img__decoder_8h_1a3851d58ee9c3d677a925be06c3e7c886"></span><span class="pre">void</span> <code class="sig-name descname"><span class="pre">lv_img_decoder_built_in_close</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv416lv_img_decoder_t" title="lv_img_decoder_t"><span class="pre">lv_img_decoder_t</span></a> <span class="pre">*</span><em><span class="pre">decoder</span></em>, <a class="reference internal" href="#_CPPv420lv_img_decoder_dsc_t" title="lv_img_decoder_dsc_t"><span class="pre">lv_img_decoder_dsc_t</span></a> <span class="pre">*</span><em><span class="pre">dsc</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv429lv_img_decoder_built_in_closeP16lv_img_decoder_tP20lv_img_decoder_dsc_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Close the pending decoding. Free resources etc. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>decoder</strong> -- pointer to the decoder the function associated with </p></li>
<li><p><strong>dsc</strong> -- pointer to decoder descriptor </p></li>
</ul>
</dd>
</dl>
</dd></dl>

</div>
<dl class="cpp struct">
<dt id="_CPPv415_lv_img_decoder">
<span id="_CPPv315_lv_img_decoder"></span><span id="_CPPv215_lv_img_decoder"></span><span id="_lv_img_decoder"></span><span class="target" id="struct__lv__img__decoder"></span><em class="property"><span class="pre">struct</span> </em><code class="sig-name descname"><span class="pre">_lv_img_decoder</span></code><a class="headerlink" href="#_CPPv415_lv_img_decoder" title="Permalink to this definition">¶</a><br /></dt>
<dd><div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt id="_CPPv4N15_lv_img_decoder7info_cbE">
<span id="_CPPv3N15_lv_img_decoder7info_cbE"></span><span id="_CPPv2N15_lv_img_decoder7info_cbE"></span><span id="_lv_img_decoder::info_cb__lv_img_decoder_info_f_t"></span><span class="target" id="struct__lv__img__decoder_1a18882a4f443af31d32c127cf6dbf9cae"></span><a class="reference internal" href="#_CPPv423lv_img_decoder_info_f_t" title="lv_img_decoder_info_f_t"><span class="pre">lv_img_decoder_info_f_t</span></a> <code class="sig-name descname"><span class="pre">info_cb</span></code><a class="headerlink" href="#_CPPv4N15_lv_img_decoder7info_cbE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N15_lv_img_decoder7open_cbE">
<span id="_CPPv3N15_lv_img_decoder7open_cbE"></span><span id="_CPPv2N15_lv_img_decoder7open_cbE"></span><span id="_lv_img_decoder::open_cb__lv_img_decoder_open_f_t"></span><span class="target" id="struct__lv__img__decoder_1af244d8d6941019d8f6612f0f05905f93"></span><a class="reference internal" href="#_CPPv423lv_img_decoder_open_f_t" title="lv_img_decoder_open_f_t"><span class="pre">lv_img_decoder_open_f_t</span></a> <code class="sig-name descname"><span class="pre">open_cb</span></code><a class="headerlink" href="#_CPPv4N15_lv_img_decoder7open_cbE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N15_lv_img_decoder12read_line_cbE">
<span id="_CPPv3N15_lv_img_decoder12read_line_cbE"></span><span id="_CPPv2N15_lv_img_decoder12read_line_cbE"></span><span id="_lv_img_decoder::read_line_cb__lv_img_decoder_read_line_f_t"></span><span class="target" id="struct__lv__img__decoder_1ac25eadad12cb1b7b544a559349d7a160"></span><a class="reference internal" href="#_CPPv428lv_img_decoder_read_line_f_t" title="lv_img_decoder_read_line_f_t"><span class="pre">lv_img_decoder_read_line_f_t</span></a> <code class="sig-name descname"><span class="pre">read_line_cb</span></code><a class="headerlink" href="#_CPPv4N15_lv_img_decoder12read_line_cbE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N15_lv_img_decoder8close_cbE">
<span id="_CPPv3N15_lv_img_decoder8close_cbE"></span><span id="_CPPv2N15_lv_img_decoder8close_cbE"></span><span id="_lv_img_decoder::close_cb__lv_img_decoder_close_f_t"></span><span class="target" id="struct__lv__img__decoder_1aa845b0010a18ff7b31b8ddffd22bc587"></span><a class="reference internal" href="#_CPPv424lv_img_decoder_close_f_t" title="lv_img_decoder_close_f_t"><span class="pre">lv_img_decoder_close_f_t</span></a> <code class="sig-name descname"><span class="pre">close_cb</span></code><a class="headerlink" href="#_CPPv4N15_lv_img_decoder8close_cbE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N15_lv_img_decoder9user_dataE">
<span id="_CPPv3N15_lv_img_decoder9user_dataE"></span><span id="_CPPv2N15_lv_img_decoder9user_dataE"></span><span id="_lv_img_decoder::user_data__lv_img_decoder_user_data_t"></span><span class="target" id="struct__lv__img__decoder_1af9a8645b1c9dc8f0a21533f892b8de3b"></span><span class="pre">lv_img_decoder_user_data_t</span> <code class="sig-name descname"><span class="pre">user_data</span></code><a class="headerlink" href="#_CPPv4N15_lv_img_decoder9user_dataE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

</div>
</dd></dl>

<dl class="cpp struct">
<dt id="_CPPv419_lv_img_decoder_dsc">
<span id="_CPPv319_lv_img_decoder_dsc"></span><span id="_CPPv219_lv_img_decoder_dsc"></span><span id="_lv_img_decoder_dsc"></span><span class="target" id="struct__lv__img__decoder__dsc"></span><em class="property"><span class="pre">struct</span> </em><code class="sig-name descname"><span class="pre">_lv_img_decoder_dsc</span></code><a class="headerlink" href="#_CPPv419_lv_img_decoder_dsc" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;lv_img_decoder.h&gt;</em><p>Describe an image decoding session. Stores data about the decoding </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt id="_CPPv4N19_lv_img_decoder_dsc7decoderE">
<span id="_CPPv3N19_lv_img_decoder_dsc7decoderE"></span><span id="_CPPv2N19_lv_img_decoder_dsc7decoderE"></span><span id="_lv_img_decoder_dsc::decoder__lv_img_decoder_tP"></span><span class="target" id="struct__lv__img__decoder__dsc_1abc38a5384f96fa5108b98b5cd37a3369"></span><a class="reference internal" href="#_CPPv416lv_img_decoder_t" title="lv_img_decoder_t"><span class="pre">lv_img_decoder_t</span></a> <span class="pre">*</span><code class="sig-name descname"><span class="pre">decoder</span></code><a class="headerlink" href="#_CPPv4N19_lv_img_decoder_dsc7decoderE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The decoder which was able to open the image source </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N19_lv_img_decoder_dsc3srcE">
<span id="_CPPv3N19_lv_img_decoder_dsc3srcE"></span><span id="_CPPv2N19_lv_img_decoder_dsc3srcE"></span><span id="_lv_img_decoder_dsc::src__voidCP"></span><span class="target" id="struct__lv__img__decoder__dsc_1a94add3cd314fd53df673970fff759ef8"></span><em class="property"><span class="pre">const</span></em> <span class="pre">void</span> <span class="pre">*</span><code class="sig-name descname"><span class="pre">src</span></code><a class="headerlink" href="#_CPPv4N19_lv_img_decoder_dsc3srcE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The image source. A file path like &quot;S:my_img.png&quot; or pointer to an <code class="docutils literal notranslate"><a class="reference internal" href="#structlv__img__dsc__t"><span class="std std-ref"><span class="pre">lv_img_dsc_t</span></span></a></code> variable </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N19_lv_img_decoder_dsc5colorE">
<span id="_CPPv3N19_lv_img_decoder_dsc5colorE"></span><span id="_CPPv2N19_lv_img_decoder_dsc5colorE"></span><span id="_lv_img_decoder_dsc::color__lv_color_t"></span><span class="target" id="struct__lv__img__decoder__dsc_1ab2efa256233accdec23a27ce51fac8ab"></span><span class="pre">lv_color_t</span> <code class="sig-name descname"><span class="pre">color</span></code><a class="headerlink" href="#_CPPv4N19_lv_img_decoder_dsc5colorE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Style to draw the image. </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N19_lv_img_decoder_dsc8src_typeE">
<span id="_CPPv3N19_lv_img_decoder_dsc8src_typeE"></span><span id="_CPPv2N19_lv_img_decoder_dsc8src_typeE"></span><span id="_lv_img_decoder_dsc::src_type__lv_img_src_t"></span><span class="target" id="struct__lv__img__decoder__dsc_1acd962897195664512c8ccf7e5c02714a"></span><a class="reference internal" href="#_CPPv412lv_img_src_t" title="lv_img_src_t"><span class="pre">lv_img_src_t</span></a> <code class="sig-name descname"><span class="pre">src_type</span></code><a class="headerlink" href="#_CPPv4N19_lv_img_decoder_dsc8src_typeE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Type of the source: file or variable. Can be set in <code class="docutils literal notranslate"><span class="pre">open</span></code> function if required </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N19_lv_img_decoder_dsc6headerE">
<span id="_CPPv3N19_lv_img_decoder_dsc6headerE"></span><span id="_CPPv2N19_lv_img_decoder_dsc6headerE"></span><span id="_lv_img_decoder_dsc::header__lv_img_header_t"></span><span class="target" id="struct__lv__img__decoder__dsc_1a5e07a8990562f89421b50e447a766da2"></span><a class="reference internal" href="#_CPPv415lv_img_header_t" title="lv_img_header_t"><span class="pre">lv_img_header_t</span></a> <code class="sig-name descname"><span class="pre">header</span></code><a class="headerlink" href="#_CPPv4N19_lv_img_decoder_dsc6headerE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Info about the opened image: color format, size, etc. MUST be set in <code class="docutils literal notranslate"><span class="pre">open</span></code> function </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N19_lv_img_decoder_dsc8img_dataE">
<span id="_CPPv3N19_lv_img_decoder_dsc8img_dataE"></span><span id="_CPPv2N19_lv_img_decoder_dsc8img_dataE"></span><span id="_lv_img_decoder_dsc::img_data__uint8_tCP"></span><span class="target" id="struct__lv__img__decoder__dsc_1ae464ea2d105534964e308a2c14666a05"></span><em class="property"><span class="pre">const</span></em> <span class="pre">uint8_t</span> <span class="pre">*</span><code class="sig-name descname"><span class="pre">img_data</span></code><a class="headerlink" href="#_CPPv4N19_lv_img_decoder_dsc8img_dataE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Pointer to a buffer where the image's data (pixels) are stored in a decoded, plain format. MUST be set in <code class="docutils literal notranslate"><span class="pre">open</span></code> function </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N19_lv_img_decoder_dsc12time_to_openE">
<span id="_CPPv3N19_lv_img_decoder_dsc12time_to_openE"></span><span id="_CPPv2N19_lv_img_decoder_dsc12time_to_openE"></span><span id="_lv_img_decoder_dsc::time_to_open__uint32_t"></span><span class="target" id="struct__lv__img__decoder__dsc_1aadc5c0f5ed7fe9366155a3c960fa0154"></span><span class="pre">uint32_t</span> <code class="sig-name descname"><span class="pre">time_to_open</span></code><a class="headerlink" href="#_CPPv4N19_lv_img_decoder_dsc12time_to_openE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>How much time did it take to open the image. [ms] If not set <code class="docutils literal notranslate"><span class="pre">lv_img_cache</span></code> will measure and set the time to open </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N19_lv_img_decoder_dsc9error_msgE">
<span id="_CPPv3N19_lv_img_decoder_dsc9error_msgE"></span><span id="_CPPv2N19_lv_img_decoder_dsc9error_msgE"></span><span id="_lv_img_decoder_dsc::error_msg__cCP"></span><span class="target" id="struct__lv__img__decoder__dsc_1ab8c419f90976c81f23f40079564d4a42"></span><em class="property"><span class="pre">const</span></em> <span class="pre">char</span> <span class="pre">*</span><code class="sig-name descname"><span class="pre">error_msg</span></code><a class="headerlink" href="#_CPPv4N19_lv_img_decoder_dsc9error_msgE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>A text to display instead of the image when the image can't be opened. Can be set in <code class="docutils literal notranslate"><span class="pre">open</span></code> function or set NULL. </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N19_lv_img_decoder_dsc9user_dataE">
<span id="_CPPv3N19_lv_img_decoder_dsc9user_dataE"></span><span id="_CPPv2N19_lv_img_decoder_dsc9user_dataE"></span><span id="_lv_img_decoder_dsc::user_data__voidP"></span><span class="target" id="struct__lv__img__decoder__dsc_1a3c71f68d3e21c2bcb96693d45ca2424e"></span><span class="pre">void</span> <span class="pre">*</span><code class="sig-name descname"><span class="pre">user_data</span></code><a class="headerlink" href="#_CPPv4N19_lv_img_decoder_dsc9user_dataE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Store any custom data here is required </p>
</dd></dl>

</div>
</dd></dl>

</div>
<div class="section" id="image-cache">
<h3>Image cache<a class="headerlink" href="#image-cache" title="Permalink to this headline">¶</a></h3>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-functions">Functions</p>
<dl class="cpp function">
<dt id="_CPPv418_lv_img_cache_openPKv10lv_color_t">
<span id="_CPPv318_lv_img_cache_openPKv10lv_color_t"></span><span id="_CPPv218_lv_img_cache_openPKv10lv_color_t"></span><span id="_lv_img_cache_open__voidCP.lv_color_t"></span><span class="target" id="lv__img__cache_8h_1a7a4feb1cc7aa43ef5c758c43c3886755"></span><a class="reference internal" href="#_CPPv420lv_img_cache_entry_t" title="lv_img_cache_entry_t"><span class="pre">lv_img_cache_entry_t</span></a> <span class="pre">*</span><code class="sig-name descname"><span class="pre">_lv_img_cache_open</span></code><span class="sig-paren">(</span><em class="property"><span class="pre">const</span></em> <span class="pre">void</span> <span class="pre">*</span><em><span class="pre">src</span></em>, <span class="pre">lv_color_t</span> <em><span class="pre">color</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv418_lv_img_cache_openPKv10lv_color_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Open an image using the image decoder interface and cache it. The image will be left open meaning if the image decoder open callback allocated memory then it will remain. The image is closed if a new image is opened and the new image takes its place in the cache. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>src</strong> -- source of the image. Path to file or pointer to an <code class="docutils literal notranslate"><a class="reference internal" href="#structlv__img__dsc__t"><span class="std std-ref"><span class="pre">lv_img_dsc_t</span></span></a></code> variable </p></li>
<li><p><strong>color</strong> -- The color of the image with <code class="docutils literal notranslate"><span class="pre">LV_IMG_CF_ALPHA_...</span></code> </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>pointer to the cache entry or NULL if can open the image </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv421lv_img_cache_set_size8uint16_t">
<span id="_CPPv321lv_img_cache_set_size8uint16_t"></span><span id="_CPPv221lv_img_cache_set_size8uint16_t"></span><span id="lv_img_cache_set_size__uint16_t"></span><span class="target" id="lv__img__cache_8h_1a46b15e19e694e1db820b6cdaf9bf2ded"></span><span class="pre">void</span> <code class="sig-name descname"><span class="pre">lv_img_cache_set_size</span></code><span class="sig-paren">(</span><span class="pre">uint16_t</span> <em><span class="pre">new_slot_num</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv421lv_img_cache_set_size8uint16_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set the number of images to be cached. More cached images mean more opened image at same time which might mean more memory usage. E.g. if 20 PNG or JPG images are open in the RAM they consume memory while opened in the cache. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>new_entry_cnt</strong> -- number of image to cache </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv427lv_img_cache_invalidate_srcPKv">
<span id="_CPPv327lv_img_cache_invalidate_srcPKv"></span><span id="_CPPv227lv_img_cache_invalidate_srcPKv"></span><span id="lv_img_cache_invalidate_src__voidCP"></span><span class="target" id="lv__img__cache_8h_1a958506ba24cd5caea94613788c4be8b6"></span><span class="pre">void</span> <code class="sig-name descname"><span class="pre">lv_img_cache_invalidate_src</span></code><span class="sig-paren">(</span><em class="property"><span class="pre">const</span></em> <span class="pre">void</span> <span class="pre">*</span><em><span class="pre">src</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv427lv_img_cache_invalidate_srcPKv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Invalidate an image source in the cache. Useful if the image source is updated therefore it needs to be cached again. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>src</strong> -- an image source path to a file or pointer to an <code class="docutils literal notranslate"><a class="reference internal" href="#structlv__img__dsc__t"><span class="std std-ref"><span class="pre">lv_img_dsc_t</span></span></a></code> variable. </p>
</dd>
</dl>
</dd></dl>

</div>
<dl class="cpp struct">
<dt id="_CPPv420lv_img_cache_entry_t">
<span id="_CPPv320lv_img_cache_entry_t"></span><span id="_CPPv220lv_img_cache_entry_t"></span><span id="lv_img_cache_entry_t"></span><span class="target" id="structlv__img__cache__entry__t"></span><em class="property"><span class="pre">struct</span> </em><code class="sig-name descname"><span class="pre">lv_img_cache_entry_t</span></code><a class="headerlink" href="#_CPPv420lv_img_cache_entry_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;lv_img_cache.h&gt;</em><p>When loading images from the network it can take a long time to download and decode the image.</p>
<p>To avoid repeating this heavy load images can be cached. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt id="_CPPv4N20lv_img_cache_entry_t7dec_dscE">
<span id="_CPPv3N20lv_img_cache_entry_t7dec_dscE"></span><span id="_CPPv2N20lv_img_cache_entry_t7dec_dscE"></span><span id="lv_img_cache_entry_t::dec_dsc__lv_img_decoder_dsc_t"></span><span class="target" id="structlv__img__cache__entry__t_1a9b028e61de22cd7736613442bab198bc"></span><a class="reference internal" href="#_CPPv420lv_img_decoder_dsc_t" title="lv_img_decoder_dsc_t"><span class="pre">lv_img_decoder_dsc_t</span></a> <code class="sig-name descname"><span class="pre">dec_dsc</span></code><a class="headerlink" href="#_CPPv4N20lv_img_cache_entry_t7dec_dscE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Image information </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N20lv_img_cache_entry_t4lifeE">
<span id="_CPPv3N20lv_img_cache_entry_t4lifeE"></span><span id="_CPPv2N20lv_img_cache_entry_t4lifeE"></span><span id="lv_img_cache_entry_t::life__int32_t"></span><span class="target" id="structlv__img__cache__entry__t_1a17fb9d7d7a352c80701163420d05440b"></span><span class="pre">int32_t</span> <code class="sig-name descname"><span class="pre">life</span></code><a class="headerlink" href="#_CPPv4N20lv_img_cache_entry_t4lifeE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Count the cache entries's life. Add <code class="docutils literal notranslate"><span class="pre">time_tio_open</span></code> to <code class="docutils literal notranslate"><span class="pre">life</span></code> when the entry is used. Decrement all lifes by one every in every ::lv_img_cache_open. If life == 0 the entry can be reused </p>
</dd></dl>

</div>
</dd></dl>

</div>
<div class="section" id="image-buffer">
<h3>Image buffer<a class="headerlink" href="#image-buffer" title="Permalink to this headline">¶</a></h3>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-typedefs">Typedefs</p>
<dl class="cpp type">
<dt id="_CPPv411lv_img_cf_t">
<span id="_CPPv311lv_img_cf_t"></span><span id="_CPPv211lv_img_cf_t"></span><span id="lv_img_cf_t"></span><span class="target" id="lv__img__buf_8h_1a3cd0b0d2269a76ecf35c65d5abc8fa2c"></span><em class="property"><span class="pre">typedef</span> </em><span class="pre">uint8_t</span> <code class="sig-name descname"><span class="pre">lv_img_cf_t</span></code><a class="headerlink" href="#_CPPv411lv_img_cf_t" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-enums">Enums</p>
<dl class="cpp enum">
<dt id="_CPPv4Ut2_22">
<span id="_CPPv3Ut2_22"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13"></span><em class="property"><span class="pre">enum</span> </em><strong><span class="pre">[anonymous]</span></strong><a class="headerlink" href="#_CPPv4Ut2_22" title="Permalink to this definition">¶</a><br /></dt>
<dd><p><em>Values:</em></p>
<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2217LV_IMG_CF_UNKNOWNE">
<span id="_CPPv3NUt2_2217LV_IMG_CF_UNKNOWNE"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13aec9725b572a51d9e6f65e325c9c17f31"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_UNKNOWN</span></code><a class="headerlink" href="#_CPPv4NUt2_2217LV_IMG_CF_UNKNOWNE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2213LV_IMG_CF_RAWE">
<span id="_CPPv3NUt2_2213LV_IMG_CF_RAWE"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13ae79779c0a260d69563dfa30e9b11d265"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_RAW</span></code><a class="headerlink" href="#_CPPv4NUt2_2213LV_IMG_CF_RAWE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Contains the file as it is. Needs custom decoder function </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2219LV_IMG_CF_RAW_ALPHAE">
<span id="_CPPv3NUt2_2219LV_IMG_CF_RAW_ALPHAE"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13ac32f641d0c92f307ce2b93766239bd56"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_RAW_ALPHA</span></code><a class="headerlink" href="#_CPPv4NUt2_2219LV_IMG_CF_RAW_ALPHAE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Contains the file as it is. The image has alpha. Needs custom decoder function </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2226LV_IMG_CF_RAW_CHROMA_KEYEDE">
<span id="_CPPv3NUt2_2226LV_IMG_CF_RAW_CHROMA_KEYEDE"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13a07e2f7713a6d4574d34f9548b5949d13"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_RAW_CHROMA_KEYED</span></code><a class="headerlink" href="#_CPPv4NUt2_2226LV_IMG_CF_RAW_CHROMA_KEYEDE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Contains the file as it is. The image is chroma keyed. Needs custom decoder function </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2220LV_IMG_CF_TRUE_COLORE">
<span id="_CPPv3NUt2_2220LV_IMG_CF_TRUE_COLORE"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13acc00dbb56f9207133c12cca0f94c4f8d"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_TRUE_COLOR</span></code><a class="headerlink" href="#_CPPv4NUt2_2220LV_IMG_CF_TRUE_COLORE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Color format and depth should match with LV_COLOR settings </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2226LV_IMG_CF_TRUE_COLOR_ALPHAE">
<span id="_CPPv3NUt2_2226LV_IMG_CF_TRUE_COLOR_ALPHAE"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13a77b153c97241ea0312b96a3bd5d4f185"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_TRUE_COLOR_ALPHA</span></code><a class="headerlink" href="#_CPPv4NUt2_2226LV_IMG_CF_TRUE_COLOR_ALPHAE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Same as <code class="docutils literal notranslate"><span class="pre">LV_IMG_CF_TRUE_COLOR</span></code> but every pixel has an alpha byte </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2233LV_IMG_CF_TRUE_COLOR_CHROMA_KEYEDE">
<span id="_CPPv3NUt2_2233LV_IMG_CF_TRUE_COLOR_CHROMA_KEYEDE"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13a4afaa8f28d1b38d91a4579a7fe5cd746"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED</span></code><a class="headerlink" href="#_CPPv4NUt2_2233LV_IMG_CF_TRUE_COLOR_CHROMA_KEYEDE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Same as <code class="docutils literal notranslate"><span class="pre">LV_IMG_CF_TRUE_COLOR</span></code> but LV_COLOR_TRANSP pixels will be transparent </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2222LV_IMG_CF_INDEXED_1BITE">
<span id="_CPPv3NUt2_2222LV_IMG_CF_INDEXED_1BITE"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13ace7d7c0dc2a98e0d1989f1c102b5ea3b"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_INDEXED_1BIT</span></code><a class="headerlink" href="#_CPPv4NUt2_2222LV_IMG_CF_INDEXED_1BITE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Can have 2 different colors in a palette (always chroma keyed) </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2222LV_IMG_CF_INDEXED_2BITE">
<span id="_CPPv3NUt2_2222LV_IMG_CF_INDEXED_2BITE"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13aa6c3c2fdc1a2c273f50d3638ee62d775"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_INDEXED_2BIT</span></code><a class="headerlink" href="#_CPPv4NUt2_2222LV_IMG_CF_INDEXED_2BITE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Can have 4 different colors in a palette (always chroma keyed) </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2222LV_IMG_CF_INDEXED_4BITE">
<span id="_CPPv3NUt2_2222LV_IMG_CF_INDEXED_4BITE"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13ac541e5ff700cbab1422972b2124fa857"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_INDEXED_4BIT</span></code><a class="headerlink" href="#_CPPv4NUt2_2222LV_IMG_CF_INDEXED_4BITE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Can have 16 different colors in a palette (always chroma keyed) </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2222LV_IMG_CF_INDEXED_8BITE">
<span id="_CPPv3NUt2_2222LV_IMG_CF_INDEXED_8BITE"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13a05da196150be23ccba0bee4d64b0e13f"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_INDEXED_8BIT</span></code><a class="headerlink" href="#_CPPv4NUt2_2222LV_IMG_CF_INDEXED_8BITE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Can have 256 different colors in a palette (always chroma keyed) </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2220LV_IMG_CF_ALPHA_1BITE">
<span id="_CPPv3NUt2_2220LV_IMG_CF_ALPHA_1BITE"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13a0704ce366200825b155639eabb098f72"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_ALPHA_1BIT</span></code><a class="headerlink" href="#_CPPv4NUt2_2220LV_IMG_CF_ALPHA_1BITE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Can have one color and it can be drawn or not </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2220LV_IMG_CF_ALPHA_2BITE">
<span id="_CPPv3NUt2_2220LV_IMG_CF_ALPHA_2BITE"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13a384013e83c460e879851d57bb335c561"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_ALPHA_2BIT</span></code><a class="headerlink" href="#_CPPv4NUt2_2220LV_IMG_CF_ALPHA_2BITE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Can have one color but 4 different alpha value </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2220LV_IMG_CF_ALPHA_4BITE">
<span id="_CPPv3NUt2_2220LV_IMG_CF_ALPHA_4BITE"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13a87a787a99d25627728738686b0ce3ef6"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_ALPHA_4BIT</span></code><a class="headerlink" href="#_CPPv4NUt2_2220LV_IMG_CF_ALPHA_4BITE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Can have one color but 16 different alpha value </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2220LV_IMG_CF_ALPHA_8BITE">
<span id="_CPPv3NUt2_2220LV_IMG_CF_ALPHA_8BITE"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13aa886fdd8e02ff433765a3ac3ee3f3103"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_ALPHA_8BIT</span></code><a class="headerlink" href="#_CPPv4NUt2_2220LV_IMG_CF_ALPHA_8BITE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Can have one color but 256 different alpha value </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2221LV_IMG_CF_RESERVED_15E">
<span id="_CPPv3NUt2_2221LV_IMG_CF_RESERVED_15E"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13ac6006bf886cf67fbdcba2fc35420dde1"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_RESERVED_15</span></code><a class="headerlink" href="#_CPPv4NUt2_2221LV_IMG_CF_RESERVED_15E" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Reserved for further use. </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2221LV_IMG_CF_RESERVED_16E">
<span id="_CPPv3NUt2_2221LV_IMG_CF_RESERVED_16E"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13ac41001bc99874f888699ee66c95e4a60"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_RESERVED_16</span></code><a class="headerlink" href="#_CPPv4NUt2_2221LV_IMG_CF_RESERVED_16E" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Reserved for further use. </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2221LV_IMG_CF_RESERVED_17E">
<span id="_CPPv3NUt2_2221LV_IMG_CF_RESERVED_17E"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13a43ab253b62444e42d42f13aa095cf403"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_RESERVED_17</span></code><a class="headerlink" href="#_CPPv4NUt2_2221LV_IMG_CF_RESERVED_17E" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Reserved for further use. </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2221LV_IMG_CF_RESERVED_18E">
<span id="_CPPv3NUt2_2221LV_IMG_CF_RESERVED_18E"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13a8218597f402ec4f232086733989c7bdd"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_RESERVED_18</span></code><a class="headerlink" href="#_CPPv4NUt2_2221LV_IMG_CF_RESERVED_18E" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Reserved for further use. </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2221LV_IMG_CF_RESERVED_19E">
<span id="_CPPv3NUt2_2221LV_IMG_CF_RESERVED_19E"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13a8772a961b79a708937a85ec355ee7bf2"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_RESERVED_19</span></code><a class="headerlink" href="#_CPPv4NUt2_2221LV_IMG_CF_RESERVED_19E" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Reserved for further use. </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2221LV_IMG_CF_RESERVED_20E">
<span id="_CPPv3NUt2_2221LV_IMG_CF_RESERVED_20E"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13a5f19c0882596b10e127b1a644d49d839"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_RESERVED_20</span></code><a class="headerlink" href="#_CPPv4NUt2_2221LV_IMG_CF_RESERVED_20E" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Reserved for further use. </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2221LV_IMG_CF_RESERVED_21E">
<span id="_CPPv3NUt2_2221LV_IMG_CF_RESERVED_21E"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13a97912596b301ed725dd471c109e7d22e"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_RESERVED_21</span></code><a class="headerlink" href="#_CPPv4NUt2_2221LV_IMG_CF_RESERVED_21E" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Reserved for further use. </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2221LV_IMG_CF_RESERVED_22E">
<span id="_CPPv3NUt2_2221LV_IMG_CF_RESERVED_22E"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13af6daa2d7b441229c118cae568f7be0e2"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_RESERVED_22</span></code><a class="headerlink" href="#_CPPv4NUt2_2221LV_IMG_CF_RESERVED_22E" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Reserved for further use. </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2221LV_IMG_CF_RESERVED_23E">
<span id="_CPPv3NUt2_2221LV_IMG_CF_RESERVED_23E"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13aab39036176cb11aad4434ae226d2b701"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_RESERVED_23</span></code><a class="headerlink" href="#_CPPv4NUt2_2221LV_IMG_CF_RESERVED_23E" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Reserved for further use. </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2224LV_IMG_CF_USER_ENCODED_0E">
<span id="_CPPv3NUt2_2224LV_IMG_CF_USER_ENCODED_0E"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13a13acddabcd2b3d47fd6f77f1aa014788"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_USER_ENCODED_0</span></code><a class="headerlink" href="#_CPPv4NUt2_2224LV_IMG_CF_USER_ENCODED_0E" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>User holder encoding format. </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2224LV_IMG_CF_USER_ENCODED_1E">
<span id="_CPPv3NUt2_2224LV_IMG_CF_USER_ENCODED_1E"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13a7a5e55bc05ae9d4fafa3670ce8fcdf07"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_USER_ENCODED_1</span></code><a class="headerlink" href="#_CPPv4NUt2_2224LV_IMG_CF_USER_ENCODED_1E" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>User holder encoding format. </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2224LV_IMG_CF_USER_ENCODED_2E">
<span id="_CPPv3NUt2_2224LV_IMG_CF_USER_ENCODED_2E"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13abd5c306386fd2f5c061b8b1c1bcaf512"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_USER_ENCODED_2</span></code><a class="headerlink" href="#_CPPv4NUt2_2224LV_IMG_CF_USER_ENCODED_2E" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>User holder encoding format. </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2224LV_IMG_CF_USER_ENCODED_3E">
<span id="_CPPv3NUt2_2224LV_IMG_CF_USER_ENCODED_3E"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13a5498735a659fb327623b221baa39d8a2"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_USER_ENCODED_3</span></code><a class="headerlink" href="#_CPPv4NUt2_2224LV_IMG_CF_USER_ENCODED_3E" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>User holder encoding format. </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2224LV_IMG_CF_USER_ENCODED_4E">
<span id="_CPPv3NUt2_2224LV_IMG_CF_USER_ENCODED_4E"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13aed7b220bc523d7e71e118d663e93de95"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_USER_ENCODED_4</span></code><a class="headerlink" href="#_CPPv4NUt2_2224LV_IMG_CF_USER_ENCODED_4E" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>User holder encoding format. </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2224LV_IMG_CF_USER_ENCODED_5E">
<span id="_CPPv3NUt2_2224LV_IMG_CF_USER_ENCODED_5E"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13a86489e0f698809d9de29da439f62df97"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_USER_ENCODED_5</span></code><a class="headerlink" href="#_CPPv4NUt2_2224LV_IMG_CF_USER_ENCODED_5E" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>User holder encoding format. </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2224LV_IMG_CF_USER_ENCODED_6E">
<span id="_CPPv3NUt2_2224LV_IMG_CF_USER_ENCODED_6E"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13aa8a98ec44b8871abe5dc1b2e59cead26"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_USER_ENCODED_6</span></code><a class="headerlink" href="#_CPPv4NUt2_2224LV_IMG_CF_USER_ENCODED_6E" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>User holder encoding format. </p>
</dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4NUt2_2224LV_IMG_CF_USER_ENCODED_7E">
<span id="_CPPv3NUt2_2224LV_IMG_CF_USER_ENCODED_7E"></span><span class="target" id="lv__img__buf_8h_1a39fca1837c5ce7715cbf571669660c13a8d3c364964cd71c5cdde6c27b1fb48f4"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_IMG_CF_USER_ENCODED_7</span></code><a class="headerlink" href="#_CPPv4NUt2_2224LV_IMG_CF_USER_ENCODED_7E" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>User holder encoding format. </p>
</dd></dl>

</dd></dl>

</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-functions">Functions</p>
<dl class="cpp function">
<dt id="_CPPv416lv_img_buf_alloc10lv_coord_t10lv_coord_t11lv_img_cf_t">
<span id="_CPPv316lv_img_buf_alloc10lv_coord_t10lv_coord_t11lv_img_cf_t"></span><span id="_CPPv216lv_img_buf_alloc10lv_coord_t10lv_coord_t11lv_img_cf_t"></span><span id="lv_img_buf_alloc__lv_coord_t.lv_coord_t.lv_img_cf_t"></span><span class="target" id="lv__img__buf_8h_1a0119ae731cc4db78cb1ac5d57f1cea4c"></span><a class="reference internal" href="#_CPPv412lv_img_dsc_t" title="lv_img_dsc_t"><span class="pre">lv_img_dsc_t</span></a> <span class="pre">*</span><code class="sig-name descname"><span class="pre">lv_img_buf_alloc</span></code><span class="sig-paren">(</span><span class="pre">lv_coord_t</span> <em><span class="pre">w</span></em>, <span class="pre">lv_coord_t</span> <em><span class="pre">h</span></em>, <a class="reference internal" href="#_CPPv411lv_img_cf_t" title="lv_img_cf_t"><span class="pre">lv_img_cf_t</span></a> <em><span class="pre">cf</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv416lv_img_buf_alloc10lv_coord_t10lv_coord_t11lv_img_cf_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Allocate an image buffer in RAM </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>w</strong> -- width of image </p></li>
<li><p><strong>h</strong> -- height of image </p></li>
<li><p><strong>cf</strong> -- a color format (<code class="docutils literal notranslate"><span class="pre">LV_IMG_CF_...</span></code>) </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>an allocated image, or NULL on failure </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv423lv_img_buf_get_px_colorP12lv_img_dsc_t10lv_coord_t10lv_coord_t10lv_color_t">
<span id="_CPPv323lv_img_buf_get_px_colorP12lv_img_dsc_t10lv_coord_t10lv_coord_t10lv_color_t"></span><span id="_CPPv223lv_img_buf_get_px_colorP12lv_img_dsc_t10lv_coord_t10lv_coord_t10lv_color_t"></span><span id="lv_img_buf_get_px_color__lv_img_dsc_tP.lv_coord_t.lv_coord_t.lv_color_t"></span><span class="target" id="lv__img__buf_8h_1acb536b0da91461b0070bb46f2e3d5d02"></span><span class="pre">lv_color_t</span> <code class="sig-name descname"><span class="pre">lv_img_buf_get_px_color</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv412lv_img_dsc_t" title="lv_img_dsc_t"><span class="pre">lv_img_dsc_t</span></a> <span class="pre">*</span><em><span class="pre">dsc</span></em>, <span class="pre">lv_coord_t</span> <em><span class="pre">x</span></em>, <span class="pre">lv_coord_t</span> <em><span class="pre">y</span></em>, <span class="pre">lv_color_t</span> <em><span class="pre">color</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv423lv_img_buf_get_px_colorP12lv_img_dsc_t10lv_coord_t10lv_coord_t10lv_color_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the color of an image's pixel </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>dsc</strong> -- an image descriptor </p></li>
<li><p><strong>x</strong> -- x coordinate of the point to get </p></li>
<li><p><strong>y</strong> -- x coordinate of the point to get </p></li>
<li><p><strong>color</strong> -- the color of the image. In case of <code class="docutils literal notranslate"><span class="pre">LV_IMG_CF_ALPHA_1/2/4/8</span></code> this color is used. Not used in other cases. </p></li>
<li><p><strong>safe</strong> -- true: check out of bounds </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>color of the point </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv423lv_img_buf_get_px_alphaP12lv_img_dsc_t10lv_coord_t10lv_coord_t">
<span id="_CPPv323lv_img_buf_get_px_alphaP12lv_img_dsc_t10lv_coord_t10lv_coord_t"></span><span id="_CPPv223lv_img_buf_get_px_alphaP12lv_img_dsc_t10lv_coord_t10lv_coord_t"></span><span id="lv_img_buf_get_px_alpha__lv_img_dsc_tP.lv_coord_t.lv_coord_t"></span><span class="target" id="lv__img__buf_8h_1ada8e08538d9c79d72c3b75681abf0c59"></span><span class="pre">lv_opa_t</span> <code class="sig-name descname"><span class="pre">lv_img_buf_get_px_alpha</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv412lv_img_dsc_t" title="lv_img_dsc_t"><span class="pre">lv_img_dsc_t</span></a> <span class="pre">*</span><em><span class="pre">dsc</span></em>, <span class="pre">lv_coord_t</span> <em><span class="pre">x</span></em>, <span class="pre">lv_coord_t</span> <em><span class="pre">y</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv423lv_img_buf_get_px_alphaP12lv_img_dsc_t10lv_coord_t10lv_coord_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the alpha value of an image's pixel </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>dsc</strong> -- pointer to an image descriptor </p></li>
<li><p><strong>x</strong> -- x coordinate of the point to set </p></li>
<li><p><strong>y</strong> -- x coordinate of the point to set </p></li>
<li><p><strong>safe</strong> -- true: check out of bounds </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>alpha value of the point </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv423lv_img_buf_set_px_colorP12lv_img_dsc_t10lv_coord_t10lv_coord_t10lv_color_t">
<span id="_CPPv323lv_img_buf_set_px_colorP12lv_img_dsc_t10lv_coord_t10lv_coord_t10lv_color_t"></span><span id="_CPPv223lv_img_buf_set_px_colorP12lv_img_dsc_t10lv_coord_t10lv_coord_t10lv_color_t"></span><span id="lv_img_buf_set_px_color__lv_img_dsc_tP.lv_coord_t.lv_coord_t.lv_color_t"></span><span class="target" id="lv__img__buf_8h_1aa137b85163313565d31aa47e71032c00"></span><span class="pre">void</span> <code class="sig-name descname"><span class="pre">lv_img_buf_set_px_color</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv412lv_img_dsc_t" title="lv_img_dsc_t"><span class="pre">lv_img_dsc_t</span></a> <span class="pre">*</span><em><span class="pre">dsc</span></em>, <span class="pre">lv_coord_t</span> <em><span class="pre">x</span></em>, <span class="pre">lv_coord_t</span> <em><span class="pre">y</span></em>, <span class="pre">lv_color_t</span> <em><span class="pre">c</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv423lv_img_buf_set_px_colorP12lv_img_dsc_t10lv_coord_t10lv_coord_t10lv_color_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set the color of a pixel of an image. The alpha channel won't be affected. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>dsc</strong> -- pointer to an image descriptor </p></li>
<li><p><strong>x</strong> -- x coordinate of the point to set </p></li>
<li><p><strong>y</strong> -- x coordinate of the point to set </p></li>
<li><p><strong>c</strong> -- color of the point </p></li>
<li><p><strong>safe</strong> -- true: check out of bounds </p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv423lv_img_buf_set_px_alphaP12lv_img_dsc_t10lv_coord_t10lv_coord_t8lv_opa_t">
<span id="_CPPv323lv_img_buf_set_px_alphaP12lv_img_dsc_t10lv_coord_t10lv_coord_t8lv_opa_t"></span><span id="_CPPv223lv_img_buf_set_px_alphaP12lv_img_dsc_t10lv_coord_t10lv_coord_t8lv_opa_t"></span><span id="lv_img_buf_set_px_alpha__lv_img_dsc_tP.lv_coord_t.lv_coord_t.lv_opa_t"></span><span class="target" id="lv__img__buf_8h_1a00e3395e129e36a06f0743355056c641"></span><span class="pre">void</span> <code class="sig-name descname"><span class="pre">lv_img_buf_set_px_alpha</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv412lv_img_dsc_t" title="lv_img_dsc_t"><span class="pre">lv_img_dsc_t</span></a> <span class="pre">*</span><em><span class="pre">dsc</span></em>, <span class="pre">lv_coord_t</span> <em><span class="pre">x</span></em>, <span class="pre">lv_coord_t</span> <em><span class="pre">y</span></em>, <span class="pre">lv_opa_t</span> <em><span class="pre">opa</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv423lv_img_buf_set_px_alphaP12lv_img_dsc_t10lv_coord_t10lv_coord_t8lv_opa_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set the alpha value of a pixel of an image. The color won't be affected </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>dsc</strong> -- pointer to an image descriptor </p></li>
<li><p><strong>x</strong> -- x coordinate of the point to set </p></li>
<li><p><strong>y</strong> -- x coordinate of the point to set </p></li>
<li><p><strong>opa</strong> -- the desired opacity </p></li>
<li><p><strong>safe</strong> -- true: check out of bounds </p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv422lv_img_buf_set_paletteP12lv_img_dsc_t7uint8_t10lv_color_t">
<span id="_CPPv322lv_img_buf_set_paletteP12lv_img_dsc_t7uint8_t10lv_color_t"></span><span id="_CPPv222lv_img_buf_set_paletteP12lv_img_dsc_t7uint8_t10lv_color_t"></span><span id="lv_img_buf_set_palette__lv_img_dsc_tP.uint8_t.lv_color_t"></span><span class="target" id="lv__img__buf_8h_1af52fa01e288c05056908e06365c9a1e6"></span><span class="pre">void</span> <code class="sig-name descname"><span class="pre">lv_img_buf_set_palette</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv412lv_img_dsc_t" title="lv_img_dsc_t"><span class="pre">lv_img_dsc_t</span></a> <span class="pre">*</span><em><span class="pre">dsc</span></em>, <span class="pre">uint8_t</span> <em><span class="pre">id</span></em>, <span class="pre">lv_color_t</span> <em><span class="pre">c</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv422lv_img_buf_set_paletteP12lv_img_dsc_t7uint8_t10lv_color_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set the palette color of an indexed image. Valid only for <code class="docutils literal notranslate"><span class="pre">LV_IMG_CF_INDEXED1/2/4/8</span></code> </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>dsc</strong> -- pointer to an image descriptor </p></li>
<li><p><strong>id</strong> -- the palette color to set:<ul>
<li><p>for <code class="docutils literal notranslate"><span class="pre">LV_IMG_CF_INDEXED1</span></code>: 0..1</p></li>
<li><p>for <code class="docutils literal notranslate"><span class="pre">LV_IMG_CF_INDEXED2</span></code>: 0..3</p></li>
<li><p>for <code class="docutils literal notranslate"><span class="pre">LV_IMG_CF_INDEXED4</span></code>: 0..15</p></li>
<li><p>for <code class="docutils literal notranslate"><span class="pre">LV_IMG_CF_INDEXED8</span></code>: 0..255 </p></li>
</ul>
</p></li>
<li><p><strong>c</strong> -- the color to set </p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv415lv_img_buf_freeP12lv_img_dsc_t">
<span id="_CPPv315lv_img_buf_freeP12lv_img_dsc_t"></span><span id="_CPPv215lv_img_buf_freeP12lv_img_dsc_t"></span><span id="lv_img_buf_free__lv_img_dsc_tP"></span><span class="target" id="lv__img__buf_8h_1afda14850c7da203239ded571831a776e"></span><span class="pre">void</span> <code class="sig-name descname"><span class="pre">lv_img_buf_free</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv412lv_img_dsc_t" title="lv_img_dsc_t"><span class="pre">lv_img_dsc_t</span></a> <span class="pre">*</span><em><span class="pre">dsc</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv415lv_img_buf_freeP12lv_img_dsc_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Free an allocated image buffer </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>dsc</strong> -- image buffer to free </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv423lv_img_buf_get_img_size10lv_coord_t10lv_coord_t11lv_img_cf_t">
<span id="_CPPv323lv_img_buf_get_img_size10lv_coord_t10lv_coord_t11lv_img_cf_t"></span><span id="_CPPv223lv_img_buf_get_img_size10lv_coord_t10lv_coord_t11lv_img_cf_t"></span><span id="lv_img_buf_get_img_size__lv_coord_t.lv_coord_t.lv_img_cf_t"></span><span class="target" id="lv__img__buf_8h_1a5da34d625c83610b49ee8eb11d55a8cf"></span><span class="pre">uint32_t</span> <code class="sig-name descname"><span class="pre">lv_img_buf_get_img_size</span></code><span class="sig-paren">(</span><span class="pre">lv_coord_t</span> <em><span class="pre">w</span></em>, <span class="pre">lv_coord_t</span> <em><span class="pre">h</span></em>, <a class="reference internal" href="#_CPPv411lv_img_cf_t" title="lv_img_cf_t"><span class="pre">lv_img_cf_t</span></a> <em><span class="pre">cf</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv423lv_img_buf_get_img_size10lv_coord_t10lv_coord_t11lv_img_cf_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the memory consumption of a raw bitmap, given color format and dimensions. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>w</strong> -- width </p></li>
<li><p><strong>h</strong> -- height </p></li>
<li><p><strong>cf</strong> -- color format </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>size in bytes </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv426_lv_img_buf_transform_initP22lv_img_transform_dsc_t">
<span id="_CPPv326_lv_img_buf_transform_initP22lv_img_transform_dsc_t"></span><span id="_CPPv226_lv_img_buf_transform_initP22lv_img_transform_dsc_t"></span><span id="_lv_img_buf_transform_init__lv_img_transform_dsc_tP"></span><span class="target" id="lv__img__buf_8h_1ab063d41648b7f89d9638916673bb015c"></span><span class="pre">void</span> <code class="sig-name descname"><span class="pre">_lv_img_buf_transform_init</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv422lv_img_transform_dsc_t" title="lv_img_transform_dsc_t"><span class="pre">lv_img_transform_dsc_t</span></a> <span class="pre">*</span><em><span class="pre">dsc</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv426_lv_img_buf_transform_initP22lv_img_transform_dsc_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Initialize a descriptor to rotate an image </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>dsc</strong> -- pointer to an <code class="docutils literal notranslate"><a class="reference internal" href="#structlv__img__transform__dsc__t"><span class="std std-ref"><span class="pre">lv_img_transform_dsc_t</span></span></a></code> variable whose <code class="docutils literal notranslate"><span class="pre">cfg</span></code> field is initialized </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv432_lv_img_buf_transform_anti_aliasP22lv_img_transform_dsc_t">
<span id="_CPPv332_lv_img_buf_transform_anti_aliasP22lv_img_transform_dsc_t"></span><span id="_CPPv232_lv_img_buf_transform_anti_aliasP22lv_img_transform_dsc_t"></span><span id="_lv_img_buf_transform_anti_alias__lv_img_transform_dsc_tP"></span><span class="target" id="lv__img__buf_8h_1a8cd4d03b10a75fefdf8ff1b26e74fde9"></span><span class="pre">bool</span> <code class="sig-name descname"><span class="pre">_lv_img_buf_transform_anti_alias</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv422lv_img_transform_dsc_t" title="lv_img_transform_dsc_t"><span class="pre">lv_img_transform_dsc_t</span></a> <span class="pre">*</span><em><span class="pre">dsc</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv432_lv_img_buf_transform_anti_aliasP22lv_img_transform_dsc_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Continue transformation by taking the neighbors into account </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>dsc</strong> -- pointer to the transformation descriptor </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv421_lv_img_buf_transformP22lv_img_transform_dsc_t10lv_coord_t10lv_coord_t">
<span id="_CPPv321_lv_img_buf_transformP22lv_img_transform_dsc_t10lv_coord_t10lv_coord_t"></span><span id="_CPPv221_lv_img_buf_transformP22lv_img_transform_dsc_t10lv_coord_t10lv_coord_t"></span><span id="_lv_img_buf_transform__lv_img_transform_dsc_tP.lv_coord_t.lv_coord_t"></span><span class="target" id="lv__img__buf_8h_1adc02422c933acd91915034aec2437025"></span><em class="property"><span class="pre">static</span></em> <em class="property"><span class="pre">inline</span></em> <span class="pre">bool</span> <code class="sig-name descname"><span class="pre">_lv_img_buf_transform</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv422lv_img_transform_dsc_t" title="lv_img_transform_dsc_t"><span class="pre">lv_img_transform_dsc_t</span></a> <span class="pre">*</span><em><span class="pre">dsc</span></em>, <span class="pre">lv_coord_t</span> <em><span class="pre">x</span></em>, <span class="pre">lv_coord_t</span> <em><span class="pre">y</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv421_lv_img_buf_transformP22lv_img_transform_dsc_t10lv_coord_t10lv_coord_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get which color and opa would come to a pixel if it were rotated </p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>the result is written back to <code class="docutils literal notranslate"><span class="pre">dsc-&gt;res_color</span></code> and <code class="docutils literal notranslate"><span class="pre">dsc-&gt;res_opa</span></code> </p>
</div>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>dsc</strong> -- a descriptor initialized by <code class="docutils literal notranslate"><span class="pre">lv_img_buf_rotate_init</span></code> </p></li>
<li><p><strong>x</strong> -- the coordinate which color and opa should be get </p></li>
<li><p><strong>y</strong> -- the coordinate which color and opa should be get </p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>true: there is valid pixel on these x/y coordinates; false: the rotated pixel was out of the image </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv432_lv_img_buf_get_transformed_areaP9lv_area_t10lv_coord_t10lv_coord_t7int16_t8uint16_tPK10lv_point_t">
<span id="_CPPv332_lv_img_buf_get_transformed_areaP9lv_area_t10lv_coord_t10lv_coord_t7int16_t8uint16_tPK10lv_point_t"></span><span id="_CPPv232_lv_img_buf_get_transformed_areaP9lv_area_t10lv_coord_t10lv_coord_t7int16_t8uint16_tPK10lv_point_t"></span><span id="_lv_img_buf_get_transformed_area__lv_area_tP.lv_coord_t.lv_coord_t.int16_t.uint16_t.lv_point_tCP"></span><span class="target" id="lv__img__buf_8h_1a54f200e9ed40bbf1384696a4058feb69"></span><span class="pre">void</span> <code class="sig-name descname"><span class="pre">_lv_img_buf_get_transformed_area</span></code><span class="sig-paren">(</span><span class="pre">lv_area_t</span> <span class="pre">*</span><em><span class="pre">res</span></em>, <span class="pre">lv_coord_t</span> <em><span class="pre">w</span></em>, <span class="pre">lv_coord_t</span> <em><span class="pre">h</span></em>, <span class="pre">int16_t</span> <em><span class="pre">angle</span></em>, <span class="pre">uint16_t</span> <em><span class="pre">zoom</span></em>, <em class="property"><span class="pre">const</span></em> <span class="pre">lv_point_t</span> <span class="pre">*</span><em><span class="pre">pivot</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv432_lv_img_buf_get_transformed_areaP9lv_area_t10lv_coord_t10lv_coord_t7int16_t8uint16_tPK10lv_point_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the area of a rectangle if its rotated and scaled </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>res</strong> -- store the coordinates here </p></li>
<li><p><strong>w</strong> -- width of the rectangle to transform </p></li>
<li><p><strong>h</strong> -- height of the rectangle to transform </p></li>
<li><p><strong>angle</strong> -- angle of rotation </p></li>
<li><p><strong>zoom</strong> -- zoom, (256 no zoom) </p></li>
<li><p><strong>pivot</strong> -- x,y pivot coordinates of rotation </p></li>
</ul>
</dd>
</dl>
</dd></dl>

</div>
<dl class="cpp struct">
<dt id="_CPPv415lv_img_header_t">
<span id="_CPPv315lv_img_header_t"></span><span id="_CPPv215lv_img_header_t"></span><span id="lv_img_header_t"></span><span class="target" id="structlv__img__header__t"></span><em class="property"><span class="pre">struct</span> </em><code class="sig-name descname"><span class="pre">lv_img_header_t</span></code><a class="headerlink" href="#_CPPv415lv_img_header_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;lv_img_buf.h&gt;</em><p>LVGL image header </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt id="_CPPv4N15lv_img_header_t1hE">
<span id="_CPPv3N15lv_img_header_t1hE"></span><span id="_CPPv2N15lv_img_header_t1hE"></span><span id="lv_img_header_t::h__uint32_t"></span><span class="target" id="structlv__img__header__t_1a7e3391cd72119d417766378f18aaae2c"></span><span class="pre">uint32_t</span> <code class="sig-name descname"><span class="pre">h</span></code><a class="headerlink" href="#_CPPv4N15lv_img_header_t1hE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N15lv_img_header_t1wE">
<span id="_CPPv3N15lv_img_header_t1wE"></span><span id="_CPPv2N15lv_img_header_t1wE"></span><span id="lv_img_header_t::w__uint32_t"></span><span class="target" id="structlv__img__header__t_1a6553f8a9dc1a0f8c50dc51dda3aab537"></span><span class="pre">uint32_t</span> <code class="sig-name descname"><span class="pre">w</span></code><a class="headerlink" href="#_CPPv4N15lv_img_header_t1wE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N15lv_img_header_t8reservedE">
<span id="_CPPv3N15lv_img_header_t8reservedE"></span><span id="_CPPv2N15lv_img_header_t8reservedE"></span><span id="lv_img_header_t::reserved__uint32_t"></span><span class="target" id="structlv__img__header__t_1a7cf6525f2cb39346f5438973c489bf89"></span><span class="pre">uint32_t</span> <code class="sig-name descname"><span class="pre">reserved</span></code><a class="headerlink" href="#_CPPv4N15lv_img_header_t8reservedE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N15lv_img_header_t11always_zeroE">
<span id="_CPPv3N15lv_img_header_t11always_zeroE"></span><span id="_CPPv2N15lv_img_header_t11always_zeroE"></span><span id="lv_img_header_t::always_zero__uint32_t"></span><span class="target" id="structlv__img__header__t_1a2500e38eea0424cf5639521e4cd36f74"></span><span class="pre">uint32_t</span> <code class="sig-name descname"><span class="pre">always_zero</span></code><a class="headerlink" href="#_CPPv4N15lv_img_header_t11always_zeroE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N15lv_img_header_t2cfE">
<span id="_CPPv3N15lv_img_header_t2cfE"></span><span id="_CPPv2N15lv_img_header_t2cfE"></span><span id="lv_img_header_t::cf__uint32_t"></span><span class="target" id="structlv__img__header__t_1a28513641737b777e0c546bd098eb58af"></span><span class="pre">uint32_t</span> <code class="sig-name descname"><span class="pre">cf</span></code><a class="headerlink" href="#_CPPv4N15lv_img_header_t2cfE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

</div>
</dd></dl>

<dl class="cpp struct">
<dt>
<span class="target" id="structlv__img__header__t"></span><em class="property"><span class="pre">struct</span> </em><code class="sig-name descname"><span class="pre">lv_img_header_t</span></code><br /></dt>
<dd><em>#include &lt;lv_img_buf.h&gt;</em><p>LVGL image header </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt>
<span class="target" id="structlv__img__header__t_1a7e3391cd72119d417766378f18aaae2c"></span><span class="pre">uint32_t</span> <code class="sig-name descname"><span class="pre">h</span></code><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt>
<span class="target" id="structlv__img__header__t_1a6553f8a9dc1a0f8c50dc51dda3aab537"></span><span class="pre">uint32_t</span> <code class="sig-name descname"><span class="pre">w</span></code><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt>
<span class="target" id="structlv__img__header__t_1a7cf6525f2cb39346f5438973c489bf89"></span><span class="pre">uint32_t</span> <code class="sig-name descname"><span class="pre">reserved</span></code><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt>
<span class="target" id="structlv__img__header__t_1a2500e38eea0424cf5639521e4cd36f74"></span><span class="pre">uint32_t</span> <code class="sig-name descname"><span class="pre">always_zero</span></code><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt>
<span class="target" id="structlv__img__header__t_1a28513641737b777e0c546bd098eb58af"></span><span class="pre">uint32_t</span> <code class="sig-name descname"><span class="pre">cf</span></code><br /></dt>
<dd></dd></dl>

</div>
</dd></dl>

<dl class="cpp struct">
<dt id="_CPPv412lv_img_dsc_t">
<span id="_CPPv312lv_img_dsc_t"></span><span id="_CPPv212lv_img_dsc_t"></span><span id="lv_img_dsc_t"></span><span class="target" id="structlv__img__dsc__t"></span><em class="property"><span class="pre">struct</span> </em><code class="sig-name descname"><span class="pre">lv_img_dsc_t</span></code><a class="headerlink" href="#_CPPv412lv_img_dsc_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;lv_img_buf.h&gt;</em><p>Image header it is compatible with the result from image converter utility </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt id="_CPPv4N12lv_img_dsc_t6headerE">
<span id="_CPPv3N12lv_img_dsc_t6headerE"></span><span id="_CPPv2N12lv_img_dsc_t6headerE"></span><span id="lv_img_dsc_t::header__lv_img_header_t"></span><span class="target" id="structlv__img__dsc__t_1a552a5487bb4457d4b565dfa00381a846"></span><a class="reference internal" href="#_CPPv415lv_img_header_t" title="lv_img_header_t"><span class="pre">lv_img_header_t</span></a> <code class="sig-name descname"><span class="pre">header</span></code><a class="headerlink" href="#_CPPv4N12lv_img_dsc_t6headerE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N12lv_img_dsc_t9data_sizeE">
<span id="_CPPv3N12lv_img_dsc_t9data_sizeE"></span><span id="_CPPv2N12lv_img_dsc_t9data_sizeE"></span><span id="lv_img_dsc_t::data_size__uint32_t"></span><span class="target" id="structlv__img__dsc__t_1aef7de962a5e45e270151bec6bd4cdc80"></span><span class="pre">uint32_t</span> <code class="sig-name descname"><span class="pre">data_size</span></code><a class="headerlink" href="#_CPPv4N12lv_img_dsc_t9data_sizeE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N12lv_img_dsc_t4dataE">
<span id="_CPPv3N12lv_img_dsc_t4dataE"></span><span id="_CPPv2N12lv_img_dsc_t4dataE"></span><span id="lv_img_dsc_t::data__uint8_tCP"></span><span class="target" id="structlv__img__dsc__t_1a09900b90ae9c9888e341616b611df3a0"></span><em class="property"><span class="pre">const</span></em> <span class="pre">uint8_t</span> <span class="pre">*</span><code class="sig-name descname"><span class="pre">data</span></code><a class="headerlink" href="#_CPPv4N12lv_img_dsc_t4dataE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

</div>
</dd></dl>

<dl class="cpp struct">
<dt id="_CPPv422lv_img_transform_dsc_t">
<span id="_CPPv322lv_img_transform_dsc_t"></span><span id="_CPPv222lv_img_transform_dsc_t"></span><span id="lv_img_transform_dsc_t"></span><span class="target" id="structlv__img__transform__dsc__t"></span><em class="property"><span class="pre">struct</span> </em><code class="sig-name descname"><span class="pre">lv_img_transform_dsc_t</span></code><a class="headerlink" href="#_CPPv422lv_img_transform_dsc_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt id="_CPPv4N22lv_img_transform_dsc_t3srcE">
<span id="_CPPv3N22lv_img_transform_dsc_t3srcE"></span><span id="_CPPv2N22lv_img_transform_dsc_t3srcE"></span><span id="lv_img_transform_dsc_t::src__voidCP"></span><span class="target" id="structlv__img__transform__dsc__t_1abe9e3f5ba59aac0033129fde382df60f"></span><em class="property"><span class="pre">const</span></em> <span class="pre">void</span> <span class="pre">*</span><code class="sig-name descname"><span class="pre">src</span></code><a class="headerlink" href="#_CPPv4N22lv_img_transform_dsc_t3srcE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N22lv_img_transform_dsc_t5src_wE">
<span id="_CPPv3N22lv_img_transform_dsc_t5src_wE"></span><span id="_CPPv2N22lv_img_transform_dsc_t5src_wE"></span><span id="lv_img_transform_dsc_t::src_w__lv_coord_t"></span><span class="target" id="structlv__img__transform__dsc__t_1a7d93f132c399eb20aec3906e0d0ce537"></span><span class="pre">lv_coord_t</span> <code class="sig-name descname"><span class="pre">src_w</span></code><a class="headerlink" href="#_CPPv4N22lv_img_transform_dsc_t5src_wE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N22lv_img_transform_dsc_t5src_hE">
<span id="_CPPv3N22lv_img_transform_dsc_t5src_hE"></span><span id="_CPPv2N22lv_img_transform_dsc_t5src_hE"></span><span id="lv_img_transform_dsc_t::src_h__lv_coord_t"></span><span class="target" id="structlv__img__transform__dsc__t_1a2a20c3fa8900db35f86f996cfd1b820f"></span><span class="pre">lv_coord_t</span> <code class="sig-name descname"><span class="pre">src_h</span></code><a class="headerlink" href="#_CPPv4N22lv_img_transform_dsc_t5src_hE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N22lv_img_transform_dsc_t7pivot_xE">
<span id="_CPPv3N22lv_img_transform_dsc_t7pivot_xE"></span><span id="_CPPv2N22lv_img_transform_dsc_t7pivot_xE"></span><span id="lv_img_transform_dsc_t::pivot_x__lv_coord_t"></span><span class="target" id="structlv__img__transform__dsc__t_1a3b8dac07658b0c836577d4b53aab8af0"></span><span class="pre">lv_coord_t</span> <code class="sig-name descname"><span class="pre">pivot_x</span></code><a class="headerlink" href="#_CPPv4N22lv_img_transform_dsc_t7pivot_xE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N22lv_img_transform_dsc_t7pivot_yE">
<span id="_CPPv3N22lv_img_transform_dsc_t7pivot_yE"></span><span id="_CPPv2N22lv_img_transform_dsc_t7pivot_yE"></span><span id="lv_img_transform_dsc_t::pivot_y__lv_coord_t"></span><span class="target" id="structlv__img__transform__dsc__t_1afc39e547f190579cccad22fd6e8fd367"></span><span class="pre">lv_coord_t</span> <code class="sig-name descname"><span class="pre">pivot_y</span></code><a class="headerlink" href="#_CPPv4N22lv_img_transform_dsc_t7pivot_yE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N22lv_img_transform_dsc_t5angleE">
<span id="_CPPv3N22lv_img_transform_dsc_t5angleE"></span><span id="_CPPv2N22lv_img_transform_dsc_t5angleE"></span><span id="lv_img_transform_dsc_t::angle__int16_t"></span><span class="target" id="structlv__img__transform__dsc__t_1a632e14fdf637f8cb7bb21df83410a2f7"></span><span class="pre">int16_t</span> <code class="sig-name descname"><span class="pre">angle</span></code><a class="headerlink" href="#_CPPv4N22lv_img_transform_dsc_t5angleE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N22lv_img_transform_dsc_t4zoomE">
<span id="_CPPv3N22lv_img_transform_dsc_t4zoomE"></span><span id="_CPPv2N22lv_img_transform_dsc_t4zoomE"></span><span id="lv_img_transform_dsc_t::zoom__uint16_t"></span><span class="target" id="structlv__img__transform__dsc__t_1af4de9a82c020c94dd9ccd69789444e25"></span><span class="pre">uint16_t</span> <code class="sig-name descname"><span class="pre">zoom</span></code><a class="headerlink" href="#_CPPv4N22lv_img_transform_dsc_t4zoomE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N22lv_img_transform_dsc_t5colorE">
<span id="_CPPv3N22lv_img_transform_dsc_t5colorE"></span><span id="_CPPv2N22lv_img_transform_dsc_t5colorE"></span><span id="lv_img_transform_dsc_t::color__lv_color_t"></span><span class="target" id="structlv__img__transform__dsc__t_1ab042ad890c709c0c62a895878c294493"></span><span class="pre">lv_color_t</span> <code class="sig-name descname"><span class="pre">color</span></code><a class="headerlink" href="#_CPPv4N22lv_img_transform_dsc_t5colorE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N22lv_img_transform_dsc_t2cfE">
<span id="_CPPv3N22lv_img_transform_dsc_t2cfE"></span><span id="_CPPv2N22lv_img_transform_dsc_t2cfE"></span><span id="lv_img_transform_dsc_t::cf__lv_img_cf_t"></span><span class="target" id="structlv__img__transform__dsc__t_1ad13f927d37014934ad7469d54fc0df0f"></span><a class="reference internal" href="#_CPPv411lv_img_cf_t" title="lv_img_cf_t"><span class="pre">lv_img_cf_t</span></a> <code class="sig-name descname"><span class="pre">cf</span></code><a class="headerlink" href="#_CPPv4N22lv_img_transform_dsc_t2cfE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N22lv_img_transform_dsc_t9antialiasE">
<span id="_CPPv3N22lv_img_transform_dsc_t9antialiasE"></span><span id="_CPPv2N22lv_img_transform_dsc_t9antialiasE"></span><span id="lv_img_transform_dsc_t::antialias__b"></span><span class="target" id="structlv__img__transform__dsc__t_1a9453d1086afc187063d2fff925600d29"></span><span class="pre">bool</span> <code class="sig-name descname"><span class="pre">antialias</span></code><a class="headerlink" href="#_CPPv4N22lv_img_transform_dsc_t9antialiasE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N22lv_img_transform_dsc_t3cfgE">
<span id="_CPPv3N22lv_img_transform_dsc_t3cfgE"></span><span id="_CPPv2N22lv_img_transform_dsc_t3cfgE"></span><span class="target" id="structlv__img__transform__dsc__t_1aa793944719ecb1d9e6b4a6723ca0bb93"></span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#_CPPv422lv_img_transform_dsc_t" title="lv_img_transform_dsc_t"><span class="pre">lv_img_transform_dsc_t</span></a><span class="pre">::</span><strong><span class="pre">[anonymous]</span></strong> <code class="sig-name descname"><span class="pre">cfg</span></code><a class="headerlink" href="#_CPPv4N22lv_img_transform_dsc_t3cfgE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N22lv_img_transform_dsc_t3opaE">
<span id="_CPPv3N22lv_img_transform_dsc_t3opaE"></span><span id="_CPPv2N22lv_img_transform_dsc_t3opaE"></span><span id="lv_img_transform_dsc_t::opa__lv_opa_t"></span><span class="target" id="structlv__img__transform__dsc__t_1aadaf1aff28f438b03d286d3f87ca2302"></span><span class="pre">lv_opa_t</span> <code class="sig-name descname"><span class="pre">opa</span></code><a class="headerlink" href="#_CPPv4N22lv_img_transform_dsc_t3opaE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N22lv_img_transform_dsc_t3resE">
<span id="_CPPv3N22lv_img_transform_dsc_t3resE"></span><span id="_CPPv2N22lv_img_transform_dsc_t3resE"></span><span class="target" id="structlv__img__transform__dsc__t_1a71664aafb43a5c7e9d1424240b9d60b1"></span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#_CPPv422lv_img_transform_dsc_t" title="lv_img_transform_dsc_t"><span class="pre">lv_img_transform_dsc_t</span></a><span class="pre">::</span><strong><span class="pre">[anonymous]</span></strong> <code class="sig-name descname"><span class="pre">res</span></code><a class="headerlink" href="#_CPPv4N22lv_img_transform_dsc_t3resE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N22lv_img_transform_dsc_t7img_dscE">
<span id="_CPPv3N22lv_img_transform_dsc_t7img_dscE"></span><span id="_CPPv2N22lv_img_transform_dsc_t7img_dscE"></span><span id="lv_img_transform_dsc_t::img_dsc__lv_img_dsc_t"></span><span class="target" id="structlv__img__transform__dsc__t_1ada066ea7ffd711ab571c2c0bd470df46"></span><a class="reference internal" href="#_CPPv412lv_img_dsc_t" title="lv_img_dsc_t"><span class="pre">lv_img_dsc_t</span></a> <code class="sig-name descname"><span class="pre">img_dsc</span></code><a class="headerlink" href="#_CPPv4N22lv_img_transform_dsc_t7img_dscE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N22lv_img_transform_dsc_t11pivot_x_256E">
<span id="_CPPv3N22lv_img_transform_dsc_t11pivot_x_256E"></span><span id="_CPPv2N22lv_img_transform_dsc_t11pivot_x_256E"></span><span id="lv_img_transform_dsc_t::pivot_x_256__int32_t"></span><span class="target" id="structlv__img__transform__dsc__t_1ad1f577db6b70eddb30f67d953db9bd1e"></span><span class="pre">int32_t</span> <code class="sig-name descname"><span class="pre">pivot_x_256</span></code><a class="headerlink" href="#_CPPv4N22lv_img_transform_dsc_t11pivot_x_256E" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N22lv_img_transform_dsc_t11pivot_y_256E">
<span id="_CPPv3N22lv_img_transform_dsc_t11pivot_y_256E"></span><span id="_CPPv2N22lv_img_transform_dsc_t11pivot_y_256E"></span><span id="lv_img_transform_dsc_t::pivot_y_256__int32_t"></span><span class="target" id="structlv__img__transform__dsc__t_1ade400897e2d3c6bf314ece8f43b40432"></span><span class="pre">int32_t</span> <code class="sig-name descname"><span class="pre">pivot_y_256</span></code><a class="headerlink" href="#_CPPv4N22lv_img_transform_dsc_t11pivot_y_256E" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N22lv_img_transform_dsc_t5sinmaE">
<span id="_CPPv3N22lv_img_transform_dsc_t5sinmaE"></span><span id="_CPPv2N22lv_img_transform_dsc_t5sinmaE"></span><span id="lv_img_transform_dsc_t::sinma__int32_t"></span><span class="target" id="structlv__img__transform__dsc__t_1ab9e2567e1e14cd684ddd35eb56c112d0"></span><span class="pre">int32_t</span> <code class="sig-name descname"><span class="pre">sinma</span></code><a class="headerlink" href="#_CPPv4N22lv_img_transform_dsc_t5sinmaE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N22lv_img_transform_dsc_t5cosmaE">
<span id="_CPPv3N22lv_img_transform_dsc_t5cosmaE"></span><span id="_CPPv2N22lv_img_transform_dsc_t5cosmaE"></span><span id="lv_img_transform_dsc_t::cosma__int32_t"></span><span class="target" id="structlv__img__transform__dsc__t_1a35e685fda27515645370b34d507b7085"></span><span class="pre">int32_t</span> <code class="sig-name descname"><span class="pre">cosma</span></code><a class="headerlink" href="#_CPPv4N22lv_img_transform_dsc_t5cosmaE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N22lv_img_transform_dsc_t12chroma_keyedE">
<span id="_CPPv3N22lv_img_transform_dsc_t12chroma_keyedE"></span><span id="_CPPv2N22lv_img_transform_dsc_t12chroma_keyedE"></span><span id="lv_img_transform_dsc_t::chroma_keyed__uint8_t"></span><span class="target" id="structlv__img__transform__dsc__t_1a35060cf56c63be25ce159f7d6cd92ef1"></span><span class="pre">uint8_t</span> <code class="sig-name descname"><span class="pre">chroma_keyed</span></code><a class="headerlink" href="#_CPPv4N22lv_img_transform_dsc_t12chroma_keyedE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N22lv_img_transform_dsc_t9has_alphaE">
<span id="_CPPv3N22lv_img_transform_dsc_t9has_alphaE"></span><span id="_CPPv2N22lv_img_transform_dsc_t9has_alphaE"></span><span id="lv_img_transform_dsc_t::has_alpha__uint8_t"></span><span class="target" id="structlv__img__transform__dsc__t_1a7ca558d3f9ebae256bc594efa1b7772c"></span><span class="pre">uint8_t</span> <code class="sig-name descname"><span class="pre">has_alpha</span></code><a class="headerlink" href="#_CPPv4N22lv_img_transform_dsc_t9has_alphaE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N22lv_img_transform_dsc_t12native_colorE">
<span id="_CPPv3N22lv_img_transform_dsc_t12native_colorE"></span><span id="_CPPv2N22lv_img_transform_dsc_t12native_colorE"></span><span id="lv_img_transform_dsc_t::native_color__uint8_t"></span><span class="target" id="structlv__img__transform__dsc__t_1a9fd36f237e745bade1eb7c34f1a63d0a"></span><span class="pre">uint8_t</span> <code class="sig-name descname"><span class="pre">native_color</span></code><a class="headerlink" href="#_CPPv4N22lv_img_transform_dsc_t12native_colorE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N22lv_img_transform_dsc_t8zoom_invE">
<span id="_CPPv3N22lv_img_transform_dsc_t8zoom_invE"></span><span id="_CPPv2N22lv_img_transform_dsc_t8zoom_invE"></span><span id="lv_img_transform_dsc_t::zoom_inv__uint32_t"></span><span class="target" id="structlv__img__transform__dsc__t_1ae64aa61ae01b93a2762ed5d8843db027"></span><span class="pre">uint32_t</span> <code class="sig-name descname"><span class="pre">zoom_inv</span></code><a class="headerlink" href="#_CPPv4N22lv_img_transform_dsc_t8zoom_invE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N22lv_img_transform_dsc_t2xsE">
<span id="_CPPv3N22lv_img_transform_dsc_t2xsE"></span><span id="_CPPv2N22lv_img_transform_dsc_t2xsE"></span><span id="lv_img_transform_dsc_t::xs__lv_coord_t"></span><span class="target" id="structlv__img__transform__dsc__t_1a60c6356a67602a7f60f0eba0eb24ddfe"></span><span class="pre">lv_coord_t</span> <code class="sig-name descname"><span class="pre">xs</span></code><a class="headerlink" href="#_CPPv4N22lv_img_transform_dsc_t2xsE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N22lv_img_transform_dsc_t2ysE">
<span id="_CPPv3N22lv_img_transform_dsc_t2ysE"></span><span id="_CPPv2N22lv_img_transform_dsc_t2ysE"></span><span id="lv_img_transform_dsc_t::ys__lv_coord_t"></span><span class="target" id="structlv__img__transform__dsc__t_1a259d1ad99ab3b20e05a380f2a22e3bab"></span><span class="pre">lv_coord_t</span> <code class="sig-name descname"><span class="pre">ys</span></code><a class="headerlink" href="#_CPPv4N22lv_img_transform_dsc_t2ysE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N22lv_img_transform_dsc_t6xs_intE">
<span id="_CPPv3N22lv_img_transform_dsc_t6xs_intE"></span><span id="_CPPv2N22lv_img_transform_dsc_t6xs_intE"></span><span id="lv_img_transform_dsc_t::xs_int__lv_coord_t"></span><span class="target" id="structlv__img__transform__dsc__t_1aad4f0a2dd7d2522713cb7bb04f21d87c"></span><span class="pre">lv_coord_t</span> <code class="sig-name descname"><span class="pre">xs_int</span></code><a class="headerlink" href="#_CPPv4N22lv_img_transform_dsc_t6xs_intE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N22lv_img_transform_dsc_t6ys_intE">
<span id="_CPPv3N22lv_img_transform_dsc_t6ys_intE"></span><span id="_CPPv2N22lv_img_transform_dsc_t6ys_intE"></span><span id="lv_img_transform_dsc_t::ys_int__lv_coord_t"></span><span class="target" id="structlv__img__transform__dsc__t_1a2f4ad8835a1210611dc4ea7abedc040a"></span><span class="pre">lv_coord_t</span> <code class="sig-name descname"><span class="pre">ys_int</span></code><a class="headerlink" href="#_CPPv4N22lv_img_transform_dsc_t6ys_intE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N22lv_img_transform_dsc_t3pxiE">
<span id="_CPPv3N22lv_img_transform_dsc_t3pxiE"></span><span id="_CPPv2N22lv_img_transform_dsc_t3pxiE"></span><span id="lv_img_transform_dsc_t::pxi__uint32_t"></span><span class="target" id="structlv__img__transform__dsc__t_1a4c14e9b4f5603203903eb788971c0796"></span><span class="pre">uint32_t</span> <code class="sig-name descname"><span class="pre">pxi</span></code><a class="headerlink" href="#_CPPv4N22lv_img_transform_dsc_t3pxiE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N22lv_img_transform_dsc_t7px_sizeE">
<span id="_CPPv3N22lv_img_transform_dsc_t7px_sizeE"></span><span id="_CPPv2N22lv_img_transform_dsc_t7px_sizeE"></span><span id="lv_img_transform_dsc_t::px_size__uint8_t"></span><span class="target" id="structlv__img__transform__dsc__t_1a9f1c046e5e7a2d0b7ea93e4678245a12"></span><span class="pre">uint8_t</span> <code class="sig-name descname"><span class="pre">px_size</span></code><a class="headerlink" href="#_CPPv4N22lv_img_transform_dsc_t7px_sizeE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N22lv_img_transform_dsc_t3tmpE">
<span id="_CPPv3N22lv_img_transform_dsc_t3tmpE"></span><span id="_CPPv2N22lv_img_transform_dsc_t3tmpE"></span><span class="target" id="structlv__img__transform__dsc__t_1a578fec580e89c4b746bff22dc1eacd93"></span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#_CPPv422lv_img_transform_dsc_t" title="lv_img_transform_dsc_t"><span class="pre">lv_img_transform_dsc_t</span></a><span class="pre">::</span><strong><span class="pre">[anonymous]</span></strong> <code class="sig-name descname"><span class="pre">tmp</span></code><a class="headerlink" href="#_CPPv4N22lv_img_transform_dsc_t3tmpE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

</div>
</dd></dl>

</div>
<div class="section" id="image-draw">
<h3>Image draw<a class="headerlink" href="#image-draw" title="Permalink to this headline">¶</a></h3>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-functions">Functions</p>
<dl class="cpp function">
<dt id="_CPPv420lv_draw_img_dsc_initP17lv_draw_img_dsc_t">
<span id="_CPPv320lv_draw_img_dsc_initP17lv_draw_img_dsc_t"></span><span id="_CPPv220lv_draw_img_dsc_initP17lv_draw_img_dsc_t"></span><span id="lv_draw_img_dsc_init__lv_draw_img_dsc_tP"></span><span class="target" id="lv__draw__img_8h_1a9d92929d0507c273317209c1153bedef"></span><span class="pre">void</span> <code class="sig-name descname"><span class="pre">lv_draw_img_dsc_init</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv417lv_draw_img_dsc_t" title="lv_draw_img_dsc_t"><span class="pre">lv_draw_img_dsc_t</span></a> <span class="pre">*</span><em><span class="pre">dsc</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv420lv_draw_img_dsc_initP17lv_draw_img_dsc_t" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp function">
<dt id="_CPPv411lv_draw_imgPK9lv_area_tPK9lv_area_tPKvPK17lv_draw_img_dsc_t">
<span id="_CPPv311lv_draw_imgPK9lv_area_tPK9lv_area_tPKvPK17lv_draw_img_dsc_t"></span><span id="_CPPv211lv_draw_imgPK9lv_area_tPK9lv_area_tPKvPK17lv_draw_img_dsc_t"></span><span id="lv_draw_img__lv_area_tCP.lv_area_tCP.voidCP.lv_draw_img_dsc_tCP"></span><span class="target" id="lv__draw__img_8h_1a51e2e306db6127550b08262828fa709e"></span><span class="pre">void</span> <code class="sig-name descname"><span class="pre">lv_draw_img</span></code><span class="sig-paren">(</span><em class="property"><span class="pre">const</span></em> <span class="pre">lv_area_t</span> <span class="pre">*</span><em><span class="pre">coords</span></em>, <em class="property"><span class="pre">const</span></em> <span class="pre">lv_area_t</span> <span class="pre">*</span><em><span class="pre">mask</span></em>, <em class="property"><span class="pre">const</span></em> <span class="pre">void</span> <span class="pre">*</span><em><span class="pre">src</span></em>, <em class="property"><span class="pre">const</span></em> <a class="reference internal" href="#_CPPv417lv_draw_img_dsc_t" title="lv_draw_img_dsc_t"><span class="pre">lv_draw_img_dsc_t</span></a> <span class="pre">*</span><em><span class="pre">dsc</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv411lv_draw_imgPK9lv_area_tPK9lv_area_tPKvPK17lv_draw_img_dsc_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Draw an image </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>coords</strong> -- the coordinates of the image </p></li>
<li><p><strong>mask</strong> -- the image will be drawn only in this area </p></li>
<li><p><strong>src</strong> -- pointer to a lv_color_t array which contains the pixels of the image </p></li>
<li><p><strong>dsc</strong> -- pointer to an initialized <code class="docutils literal notranslate"><a class="reference internal" href="#structlv__draw__img__dsc__t"><span class="std std-ref"><span class="pre">lv_draw_img_dsc_t</span></span></a></code> variable </p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv419lv_img_src_get_typePKv">
<span id="_CPPv319lv_img_src_get_typePKv"></span><span id="_CPPv219lv_img_src_get_typePKv"></span><span id="lv_img_src_get_type__voidCP"></span><span class="target" id="lv__draw__img_8h_1ad1749598689c14b0b65ed7a81bc48148"></span><a class="reference internal" href="#_CPPv412lv_img_src_t" title="lv_img_src_t"><span class="pre">lv_img_src_t</span></a> <code class="sig-name descname"><span class="pre">lv_img_src_get_type</span></code><span class="sig-paren">(</span><em class="property"><span class="pre">const</span></em> <span class="pre">void</span> <span class="pre">*</span><em><span class="pre">src</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419lv_img_src_get_typePKv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the type of an image source </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>src</strong> -- pointer to an image source:<ul class="simple">
<li><p>pointer to an 'lv_img_t' variable (image stored internally and compiled into the code)</p></li>
<li><p>a path to a file (e.g. &quot;S:/folder/image.bin&quot;)</p></li>
<li><p>or a symbol (e.g. LV_SYMBOL_CLOSE) </p></li>
</ul>
</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>type of the image source LV_IMG_SRC_VARIABLE/FILE/SYMBOL/UNKNOWN </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv421lv_img_cf_get_px_size11lv_img_cf_t">
<span id="_CPPv321lv_img_cf_get_px_size11lv_img_cf_t"></span><span id="_CPPv221lv_img_cf_get_px_size11lv_img_cf_t"></span><span id="lv_img_cf_get_px_size__lv_img_cf_t"></span><span class="target" id="lv__draw__img_8h_1a8e26314bd67791a846ceafda0d0511b4"></span><span class="pre">uint8_t</span> <code class="sig-name descname"><span class="pre">lv_img_cf_get_px_size</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv411lv_img_cf_t" title="lv_img_cf_t"><span class="pre">lv_img_cf_t</span></a> <em><span class="pre">cf</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv421lv_img_cf_get_px_size11lv_img_cf_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the pixel size of a color format in bits </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>cf</strong> -- a color format (<code class="docutils literal notranslate"><span class="pre">LV_IMG_CF_...</span></code>) </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>the pixel size in bits </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv425lv_img_cf_is_chroma_keyed11lv_img_cf_t">
<span id="_CPPv325lv_img_cf_is_chroma_keyed11lv_img_cf_t"></span><span id="_CPPv225lv_img_cf_is_chroma_keyed11lv_img_cf_t"></span><span id="lv_img_cf_is_chroma_keyed__lv_img_cf_t"></span><span class="target" id="lv__draw__img_8h_1aa072f33174c22115a3f3d48ec42ecbc1"></span><span class="pre">bool</span> <code class="sig-name descname"><span class="pre">lv_img_cf_is_chroma_keyed</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv411lv_img_cf_t" title="lv_img_cf_t"><span class="pre">lv_img_cf_t</span></a> <em><span class="pre">cf</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv425lv_img_cf_is_chroma_keyed11lv_img_cf_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Check if a color format is chroma keyed or not </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>cf</strong> -- a color format (<code class="docutils literal notranslate"><span class="pre">LV_IMG_CF_...</span></code>) </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>true: chroma keyed; false: not chroma keyed </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv419lv_img_cf_has_alpha11lv_img_cf_t">
<span id="_CPPv319lv_img_cf_has_alpha11lv_img_cf_t"></span><span id="_CPPv219lv_img_cf_has_alpha11lv_img_cf_t"></span><span id="lv_img_cf_has_alpha__lv_img_cf_t"></span><span class="target" id="lv__draw__img_8h_1afdcbf14b7126296414e731ddc803f0b3"></span><span class="pre">bool</span> <code class="sig-name descname"><span class="pre">lv_img_cf_has_alpha</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv411lv_img_cf_t" title="lv_img_cf_t"><span class="pre">lv_img_cf_t</span></a> <em><span class="pre">cf</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419lv_img_cf_has_alpha11lv_img_cf_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Check if a color format has alpha channel or not </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>cf</strong> -- a color format (<code class="docutils literal notranslate"><span class="pre">LV_IMG_CF_...</span></code>) </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>true: has alpha channel; false: doesn't have alpha channel </p>
</dd>
</dl>
</dd></dl>

</div>
<dl class="cpp struct">
<dt id="_CPPv417lv_draw_img_dsc_t">
<span id="_CPPv317lv_draw_img_dsc_t"></span><span id="_CPPv217lv_draw_img_dsc_t"></span><span id="lv_draw_img_dsc_t"></span><span class="target" id="structlv__draw__img__dsc__t"></span><em class="property"><span class="pre">struct</span> </em><code class="sig-name descname"><span class="pre">lv_draw_img_dsc_t</span></code><a class="headerlink" href="#_CPPv417lv_draw_img_dsc_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt id="_CPPv4N17lv_draw_img_dsc_t3opaE">
<span id="_CPPv3N17lv_draw_img_dsc_t3opaE"></span><span id="_CPPv2N17lv_draw_img_dsc_t3opaE"></span><span id="lv_draw_img_dsc_t::opa__lv_opa_t"></span><span class="target" id="structlv__draw__img__dsc__t_1a86d3245577fa0948ea6167ac140e5da8"></span><span class="pre">lv_opa_t</span> <code class="sig-name descname"><span class="pre">opa</span></code><a class="headerlink" href="#_CPPv4N17lv_draw_img_dsc_t3opaE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N17lv_draw_img_dsc_t5angleE">
<span id="_CPPv3N17lv_draw_img_dsc_t5angleE"></span><span id="_CPPv2N17lv_draw_img_dsc_t5angleE"></span><span id="lv_draw_img_dsc_t::angle__uint16_t"></span><span class="target" id="structlv__draw__img__dsc__t_1a81ec3771d98f798c7e577411f15075b0"></span><span class="pre">uint16_t</span> <code class="sig-name descname"><span class="pre">angle</span></code><a class="headerlink" href="#_CPPv4N17lv_draw_img_dsc_t5angleE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N17lv_draw_img_dsc_t5pivotE">
<span id="_CPPv3N17lv_draw_img_dsc_t5pivotE"></span><span id="_CPPv2N17lv_draw_img_dsc_t5pivotE"></span><span id="lv_draw_img_dsc_t::pivot__lv_point_t"></span><span class="target" id="structlv__draw__img__dsc__t_1a86a654d76f5125496b6e903027c35093"></span><span class="pre">lv_point_t</span> <code class="sig-name descname"><span class="pre">pivot</span></code><a class="headerlink" href="#_CPPv4N17lv_draw_img_dsc_t5pivotE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N17lv_draw_img_dsc_t4zoomE">
<span id="_CPPv3N17lv_draw_img_dsc_t4zoomE"></span><span id="_CPPv2N17lv_draw_img_dsc_t4zoomE"></span><span id="lv_draw_img_dsc_t::zoom__uint16_t"></span><span class="target" id="structlv__draw__img__dsc__t_1a5f1ee5fb053a72cb5889a7cef1b28302"></span><span class="pre">uint16_t</span> <code class="sig-name descname"><span class="pre">zoom</span></code><a class="headerlink" href="#_CPPv4N17lv_draw_img_dsc_t4zoomE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N17lv_draw_img_dsc_t11recolor_opaE">
<span id="_CPPv3N17lv_draw_img_dsc_t11recolor_opaE"></span><span id="_CPPv2N17lv_draw_img_dsc_t11recolor_opaE"></span><span id="lv_draw_img_dsc_t::recolor_opa__lv_opa_t"></span><span class="target" id="structlv__draw__img__dsc__t_1a15d7fd0f7a4539ed6dc3348ab772b7e7"></span><span class="pre">lv_opa_t</span> <code class="sig-name descname"><span class="pre">recolor_opa</span></code><a class="headerlink" href="#_CPPv4N17lv_draw_img_dsc_t11recolor_opaE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N17lv_draw_img_dsc_t7recolorE">
<span id="_CPPv3N17lv_draw_img_dsc_t7recolorE"></span><span id="_CPPv2N17lv_draw_img_dsc_t7recolorE"></span><span id="lv_draw_img_dsc_t::recolor__lv_color_t"></span><span class="target" id="structlv__draw__img__dsc__t_1a10d0a2b64a7eb1db68bd2b50e0bcc002"></span><span class="pre">lv_color_t</span> <code class="sig-name descname"><span class="pre">recolor</span></code><a class="headerlink" href="#_CPPv4N17lv_draw_img_dsc_t7recolorE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N17lv_draw_img_dsc_t10blend_modeE">
<span id="_CPPv3N17lv_draw_img_dsc_t10blend_modeE"></span><span id="_CPPv2N17lv_draw_img_dsc_t10blend_modeE"></span><span id="lv_draw_img_dsc_t::blend_mode__lv_blend_mode_t"></span><span class="target" id="structlv__draw__img__dsc__t_1a54c8c5c3e3f3a928079fcb210d094e0b"></span><span class="pre">lv_blend_mode_t</span> <code class="sig-name descname"><span class="pre">blend_mode</span></code><a class="headerlink" href="#_CPPv4N17lv_draw_img_dsc_t10blend_modeE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N17lv_draw_img_dsc_t9antialiasE">
<span id="_CPPv3N17lv_draw_img_dsc_t9antialiasE"></span><span id="_CPPv2N17lv_draw_img_dsc_t9antialiasE"></span><span id="lv_draw_img_dsc_t::antialias__uint8_t"></span><span class="target" id="structlv__draw__img__dsc__t_1af440e4bf4efe9b5f0e9ad8feb67eaedb"></span><span class="pre">uint8_t</span> <code class="sig-name descname"><span class="pre">antialias</span></code><a class="headerlink" href="#_CPPv4N17lv_draw_img_dsc_t9antialiasE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

</div>
</dd></dl>

</div>
</div>
</div>


           </div>
           
          </div>
          <footer>
  
    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
      
        <a href="file-system.html" class="btn btn-neutral float-right" title="File system" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
      
      
        <a href="font.html" class="btn btn-neutral float-left" title="Fonts" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
      
    </div>
  

  <hr/>

  <div role="contentinfo">
    <p>
        
        &copy; Copyright 2020, LVGL LLC
      <span class="lastupdated">
        Last updated on May 14, 2021.
      </span>

    </p>
  </div>
    
    
    
    Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
    
    <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a>
    
    provided by <a href="https://readthedocs.org">Read the Docs</a>. 

</footer>

        </div>
      </div>

    </section>

  </div>
  

  <script type="text/javascript">
      jQuery(function () {
          SphinxRtdTheme.Navigation.enable(true);
      });
  </script>

  
  
    
  

 <script type="text/javascript">
    $(document).ready(function() {
        $(".toggle > *").hide();
        $(".toggle .header").show();
        $(".toggle .header").click(function() {
            $(this).parent().children().not(".header").toggle(400);
            $(this).parent().children(".header").toggleClass("open");
        })
    });
</script>

<script type="text/javascript">
function add_version_selector()
{
    return fetch("https://raw.githubusercontent.com/lvgl/docs_compiled/gh-pages/versionlist.txt")
        .then(res => res.text())
        .then(text => {
            const versions = text.split("\n").filter(version => version.trim().length > 0);
            p = document.getElementById("rtd-search-form").parentElement;
            p.innerHTML = `
            <select name="versions" id="versions" onchange="ver_sel()" style="border-radius:5px; margin-bottom:15px">
            ${versions.map(version => `<option value="${version}">${version}</option>`)}
            </select>` + p.innerHTML;
        });
}

function ver_sel()
{
  var x = document.getElementById("versions").value;
  window.location.href = window.location.protocol + "//" + window.location.host + "/" + x + "/";
}

document.addEventListener('DOMContentLoaded', (event) => {
    add_version_selector().then(() => {
        var value = window.location.pathname.split('/')[1];
        document.getElementById("versions").value = value;
    });
    
})
</script>


</body>
</html>